Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [PHP] passaggio di variabili, divento matto

    Scusatemi, deve essere il tempo bigio che mi crea problemi di connessione cerebrale.
    Ho una pagina menu.php con l'elenco dei record in un db:

    codice:
    <table width="620" border="0" align="center" cellpadding="0" cellspacing="1">
    <?
      // ANTIPASTI
    $link=mysql_connect($host,$username,$password);
    if (!$link) die ("$db connessione al db NON riuscita
    
    ");
    $select_db=mysql_select_db($nome_database, $link);
    if (!$select_db) die ("selezione del db NON riuscita
    
    ");
    $query="SELECT * FROM $nome_tabella_1 ORDER BY prezzo ASC";
    $result=mysql_db_query ($nome_database,$query, $link);
    while ($row=mysql_fetch_array($result)) {
    print "
     <tr>
     <td><input type=\"checkbox\" name=\"ID_antipasti\" value=\"$row[ID_antipasti]\"></td> 
     <td width=\"6\"><img src=\"img/menu/arrow_up.gif\" width=\"6\" height=\"7\"></td>
     <td align=\"left\" class=\"testo\">".$row[nome]."</td>
     <input name=\"nome\" type=\"hidden\" value=\"$row[nome]\">
     <td align=\"left\" class=\"testo\">".$row[descrizione]."</td>
     <input name=\"descrizione\" type=\"hidden\" value=\"$row[descrizione]\">
     <td width=\"40\" align=\"right\" class=\"testo\">".$row[prezzo]." €</td>
     <input name=\"prezzo\" type=\"hidden\" value=\"$row[prezzo]\">
     </tr>
     <tr>
     <td height=\"5\"></td>
     <td colspan=\"4\"  height=\"5\" background=\"img/tratto.gif\"></td>
     </tr>";
     }
     ?>
    </table>
    In pratica, visualizzo gli antipasti con una checkbox prima all'inizio di ogni riga. Io devo selezionare uno o piu' antipasti e con il tasto "ordina" inviare le variabili alla pagina ordina.php.

    Per passare le variabili, come vedete, ho usato <input type=hidden...> però non riesco a vedere le variabili, ad eccezione di $ID_antipasti che mi è giustamente valorizzata con il valore 1.

    Nella pagina ordina.php, dove visualizzo le variabili, vengono fuori dei valori errati, come se il mio sistema facesse casino...

    Potete darmi una mano? Dove sbaglio???
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  2. #2
    Per prima cosa ti consiglio di utilizzare i singoli apici al posto di quelli doppi in modo da poter evitare tutti quegli slashes che rendono difficile leggere il codice.

    Per seconda cosa, utilizza la sintassi {$row['nome']} al posto di $row[nome].

    Per terza cosa, abilita la visualizzazione di tutti gli errori (notice inclusi).

    Poi dai una occhiata a http://www.php.net/htmlentities

    Per finire, quando posti una richiesta, non scrivere "vengono fuori dei valori errati", ma scrivi esattamente ciò che ottieni e cio che invece vorresti ottenere.

  3. #3
    Hai ragione filippo.toso,
    mi dispiace per l'inesattezza della mia frase, ma ero nei nervi in quel momento.
    Essere precisi significa anche permettere a tutti di poter "capire" bene cosa succede...

    Prendo spunto da quello che mi hai detto per intervenire sul codice e ti (vi) farò sapere.

    Grazie
    :rollo:
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    36
    Sostituisci:
    <input type=\"checkbox\" name=\"ID_antipasti\" value=\"$row[ID_antipasti]\">
    con
    <input type=\"checkbox\" name=\"ID_antipasti[]\" value=\"$row[ID_antipasti]\">

    in questo modo trovi in ordina.php l'array $_POST['ID_antipasti'][n] dove n è il numero della riga (a partire da 0)

    PS. - Massima calma!!!

  5. #5
    allora, cerco di mettere ordine alle mie idee. Devo fare una cosa per me complicata, ma se prima non passo questo primo "muro" non vado avanti.

    Primo muro: Ho un DB con una tabella "antipasti" di 4 campi e diversi record strutturata cosi:

    ID_antipasti # nome # descrizione # prezzo

    e devo far vedere agli utenti nella pagina menu.php tutti gli antipasti nel DB. L'utente vede l'antipasto che gli piace... seleziona la checkbox a fianco del nome e (alla fine della pagina) clicca sul tasto submit per proseguire.

    Il mio problema è che non riesco a passare le variabili del record selezionato. Mi sono accorto che le variabili che mi passano sono quelle relative all'ultimo antipasto visualizzato sullo schermo.

    Se infatti vedete il mio codice postato all'inizio, mi connetto al DB, deleziono il DB, scelgo la tabella, tiro fuori i record, vedo le checkbox di fianco a ciascun record (e fin qui TUTTO BENE). Il problema è quando seleziono uno o piu' checkbox...
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  6. #6
    sigh sigh nessuni?
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  7. #7
    Riformuliamo il problema:

    Ho un DB con una tabella "antipasti" di 4 campi e diversi record strutturata cosi:
    ID_antipasti # nome # descrizione # prezzo

    Con questa parte di codice prendo i record dal db e li elenco con una checkbox:
    codice:
    <form action="step1.php" method="post" name="form">
    <table>
    <?
     // ANTIPASTI
    $link=mysql_connect($host,$username,$password);
    $select_db=mysql_select_db($nome_database, $link);
    $query="SELECT * FROM $nome_tabella_1 ORDER BY prezzo ASC";
    $result=mysql_db_query ($nome_database,$query, $link);
    while ($row=mysql_fetch_array($result)) {
    
    echo '<tr><td><input type=checkbox name="antipasti[]" value='.$row['nome'].'>'.$row['nome'].'
    </td><td>'.$row['descrizione'].'</td><td>'.$row['prezzo'].'</td></tr>';
    }
    ?>
    </table>
    <input name="submit" type="submit" value="submit">
      <input type="reset" name="Submit" value="Reimposta">
    </form>
    Fatto questo, nella pagina step1.php dovrei visualizzare "solo" i record selezionati con la checkbox, in cui visualizzo almeno il nome del piatto e il prezzo.

    Ho cercato su internet ma mi incarto...
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

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.