2015-09-08 14 views
5

Quindi questo è al di là di confusione per me. Ho una pagina (index.php) che ha righe. Le righe stampano fuori alla ricerca come questoPHP Problema _POST non ha senso. i valori stanno scomparendo?

enter image description here

enter image description here

enter image description here

enter image description here

E così via ... come si può vedere dal codice qui sotto ho aggiunto le dichiarazioni di debug per mostrare il passID (800 numeri) e il rowID (sequenziale)

echo "{$row['ID']}"; 
    echo" 
    <form action=\"./functions/email.php\" id='passForm' method='post'> 
    <input type='hidden' id='passID' name='passID' value='{$row['ID']}'/> 
    <input type='hidden' id='rowID' name='rowID' value='$rowID'/> 
    <button type=\"submit\" form=\"passForm\" value=\"Submit\" style=\"height:25px; width:75px\">Pass</button> 
    </form>"; 
    echo "$rowID"; 

Quando clicco su una particolare riga (diciamo 860, come mostrato nella console sviluppatore qui) enter image description here

Quando vediamo i nostri risultati sulla pagina email.php utilizzando il codice

$projectID = $_POST['passID']; 
$rowID = $_POST['rowID']; 
echo $projectID; 
echo "<br />"; 
echo $rowID; 

Vediamo che il valore è stato modificato in 865 e nella riga 1 anziché nell'860 previsto e nella riga 3 ?!

enter image description here

Questo non ha senso per me. Come può accadere? La pagina html esegue il rendering con i valori delle righe corretti come mostrato nella schermata di debug, quindi come è possibile che il codice stia semplicemente raccogliendo la riga superiore nella pagina successiva. Cosa sta succedendo??!

Come potete vedere, qualsiasi aiuto sarebbe molto apprezzato lol perché potrei o non potrei impazzire fissando questo!

+3

Quindi hai più moduli/pulsanti/campi con 'id's duplicati? ad esempio 'passForm' Questi dovrebbero essere unici per ogni modulo. – Ankh

risposta

9

Il problema è l'attributo form="passForm" nel pulsante di invio. Sta facendo sì che tutti i pulsanti di invio inviino il modulo nella prima riga. Se si omette questo attributo, il pulsante di invio si applica al relativo modulo di contenimento nella riga corrente, che è ciò che si desidera.

È inoltre necessario rimuovere gli attributi id da tutti i tuoi elementi o renderli univoci includendo l'ID di riga negli ID, poiché gli ID devono essere univoci.

+0

Semplice, ma efficace. – Peter

+1

Whelp. Una piccola incomprensione ha una lunga strada. Grazie per avermi corretto. Cavolo, non posso credere di non averlo capito. Grazie! – new2programming