Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Leggere variabili da una funzione esterna

    Salve ho implementato una funzione in un file chiamata pippo che la richiamo in un altro file con echo pippo() e stampa bene a video,

    in un altro file devo richiamare delle variabili di quella funzione, ho provato a fare in questo modo:

    $ordine = pippo($quantita,$somma);

    ma ordine mi da tutto il contenuto di pippo e non quelle 2 variabili all'interno..

    Mi dareste una dritta?

    Grazie in anticipo

    Paolo

  2. #2
    Se hai bisogno di accedere a variabili dichiarate all'interno di una funzione vuol dire che il codice è progettato male!
    Comunque se non posti il codice cosa vuoi che ti si dica?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    le due variabili ovviamente non sono $quantita e $somma, vero?

  4. #4
    Ho trovato la soluzione. Sono riuscito in pratica a mettere il campo nome del form in una variabile da utilizzare. Il codice è questo:

    codice:
    <form action="action.php" method="POST">
     <p>Il tuo Nome: <input type="text" name="name" /></p>
     <p>La tua età: <input type="text" name="age" /></p>
     <p><input type="submit"></p>
    </form>
     <div id="main">
    <?php
    $mysqli = mysqli_connect("62.149.150.216", "Sql764115", "5f6mibdf9s", "Sql764115_2") or die('Could not connect: ' . mysqli_connect_error());
    if ($result = $mysqli->query("SELECT nome FROM provatemplate1 WHERE ID = 1")) {
       while ($row = $result->fetch_assoc()) {
            echo $row['nome']."<br>";
            $variabile = $row['nome'];
        }
    }
    echo $variabile;
    Il problema era essenzialmente che essendo una colonna un array giungere alla stampa (anche se il valore era univoco) non era possibile se non passando da un ciclo while.
    Ora la voce del primo elemento è diventata una variabile che posso usare.
    Grazie per il tempo che avete perso dietro di me e...per avermi fatto compagnia...al manicomio.

  5. #5
    Quote Originariamente inviata da laugher Visualizza il messaggio
    Ho trovato la soluzione. Sono riuscito in pratica a mettere il campo nome del form in una variabile da utilizzare. Il codice è questo:

    codice:
    <form action="action.php" method="POST">
     <p>Il tuo Nome: <input type="text" name="name" /></p>
     <p>La tua età: <input type="text" name="age" /></p>
     <p><input type="submit"></p>
    </form>
     <div id="main">
    <?php
    $mysqli = mysqli_connect("62.149.150.216", "Sql764115", "5f6mibdf9s", "Sql764115_2") or die('Could not connect: ' . mysqli_connect_error());
    if ($result = $mysqli->query("SELECT nome FROM provatemplate1 WHERE ID = 1")) {
       while ($row = $result->fetch_assoc()) {
            echo $row['nome']."<br>";
            $variabile = $row['nome'];
        }
    }
    echo $variabile;
    Il problema era essenzialmente che essendo una colonna un array giungere alla stampa (anche se il valore era univoco) non era possibile se non passando da un ciclo while.
    Ora la voce del primo elemento è diventata una variabile che posso usare.
    Grazie per il tempo che avete perso dietro di me e...per avermi fatto compagnia...al manicomio.
    Ossignore, e in tutto questo cosa c'entra il campo name del form ed il relativo $_POST['name']?!?!?!?!
    Ci rinuncio!

    P.S.
    Grazie mille per la username e la password del tuo DB

    P.P.S.
    Nella foga hai postato nel 3d sbagliato o mi sono perso qualcosa?

    P.P.P.S.
    ...comunque posso dire che io c'ero
    Ultima modifica di satifal; 07-08-2014 a 16:56
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Perdonatemi se non sono stato chiaro ho un file funzioni.php al cui interno ho:

    codice:
    function mostraCarrello()
    {
      global $db;
      $carrello = $_SESSION['carrello'];
      $somma = 0;
      if ($carrello)
      {
        $prodotti = @explode(',',$carrello);
        $acquisti = array();
        foreach ($prodotti as $prodotto)
        {
          $acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
        }
        $result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
        $result[] = '<table>';
    
        foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM shop WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          @extract($f);
          $result[] = '<tr>';
          $result[] = '<td>'.$nome.'</td>';
          $result[] = '<td>&euro;'.$prezzo.'</td>';
          $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
          $result[] = '<td>&euro;'.($prezzo * $quantita).'</td><br>';
          $somma += $prezzo * $quantita;
           $result[] = '<td><a  href="carrello.php?action=cancella&id='.$id.'">Cancella</a></td><br>';
          $result[] = '</tr>';
        }
    
        $result[] = '</table>';
        $result[] = 'Totale: <b>&euro;'.$somma.'</b></br><br>';
        $result[] = '<button type="submit">Aggiorna il carrello</button>';
        $result[] = '</form>';
      }else{
        $result[] = 'Il carrello è vuoto.<br>';
      }
      return @join('',$result);
    }
    lo richiamo nella pagina dove visualizzo il carrello con echo mostraCarrello(); e tutto ok

    ora ho creato un altro file che dovrebbe inviare mail con i dati di chi acquista, il nome del prodotto e la quantita di esso acquistata nonchè prezzo finale tutti contenuti in questa funzione di calcolo scritta sopra..

    io inizialmente ho provato a mettere:

    $ordine = mostraCarrello($result);

    che mi immette il contenuto di tutta la funzione e potrebbe anche andare bene ma nella mail arriva in codice html in questo modo:

    Dettaglio ordine: <form action="carrello.php?action=aggiorna" method="post" id="cart"><table><tr><td>Frisa di orzo con condimento</td><td>&euro;2.97</td><td><input type="text" name="quantita2" value="13" size="3"></td><td>&euro;38.61</td><br><td><a ="carrello.php?action=cancella&id=2">Cancella</a></td><br></tr></table>Totale: <b>&euro;38.61</b></br><br><button type="submit">Aggiorna il carrello</button></form>

    ho provato a mettere al posto di result

    $ordine = mostraCarrello($nome,$quantita,$somma);

    ma il risultato non cambia..

  7. #7
    Hai una vaga idea di come, perdonami il gioco di parole, funzionino le funzioni?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Ho iniziato a studiare funzioni e classi quindi ancora non ho piena padronanza,, ma come detto prima il codice di prima in realtà fa quello che voglio in parte solo che appunto manda output in codice e non formattato.. se vuoi mettermi nella giusta strada indicando un percorso te ne sarei grato..

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    la mail la mandi con i corretti header che specificano che non è plain text ma html?

  10. #10
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    ma perchè mettere un result html dentro un array????!!!???
    Che mestiere difficile.....essere da soli ancora di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.