3 Stimmen

Übergabe der JavaScript-Variablen an PHP beim Absenden eines Formulars

Diese Frage folgt aus meiner vorherigen Frage counting the rows in html table using php. Da ich keine funktionierende Lösung erhalten habe, möchte ich einen neuen Weg ausprobieren, weiß aber nicht, wie ich es umsetzen soll. Ich weise jeder dynamisch hinzugefügten Zeile mit Javascript eine eindeutige ID zu. Daher speichert die Zählvariable in Javascript die Anzahl der Zeilen in der HTML-Tabelle. Wenn ich das Formular absende, wird es von savedata.php verarbeitet. Ist es möglich, die Javascript-Variable count jedes Mal automatisch an savedata.php zu übergeben, wenn das Formular abgesendet wird.

Hier ist eine verkürzte Version meiner Javascript-Datei, die eindeutige IDs für Elemente von dynamisch erstellten Zeilen erstellt.

var count=2;

function addRow()
{
    var table=document.getElementById("studenttable");
    var row=table.insertRow(-1);
    var cell15=row.insertCell(14);

    var ipt8 = document.createElement('input');
    ipt8.setAttribute("type", "hidden");
    ipt8.id = "text" + count; 
    ipt8.name = "htmlrow[]";      
    ipt8.value = count;        
    cell15.appendChild(ipt8);
    count++;
}

Jedes Mal, wenn eine neue Zeile hinzugefügt wird, wird count erhöht, sodass es ausreicht, es einfach an die PHP-Datei zu übergeben, um die Anzahl der Zeilen in der HTML-Tabelle zu erhalten. Ich möchte dies automatisch jedes Mal tun, wenn das Formular abgesendet wird.

4voto

Basic Punkte 25717

Fügen Sie dies innerhalb Ihres Formulars hinzu.

Und ändern Sie dann Ihr JavaScript, um den Wert zu aktualisieren.

document.getElementById("NumRows").value = count;

Dann können Sie in Ihrem PHP folgendes tun.

$NumRows = $_REQUEST['NumRows'];

Beachten Sie, dass wenn aus irgendeinem Grund NumRows nicht mit dem Formular übergeben wird (was hier unwahrscheinlich ist, aber anderswo möglich), dann sollten Sie dies in PHP tun.

$NumRows = isset($_REQUEST['NumRows'])?$_REQUEST['NumRows']:0;

Was bedeutet "Wenn $_REQUEST['NumRows'] gesetzt ist, verwenden Sie es, ansonsten setzen Sie $NumRows auf 0".

2voto

Akash Gupta Punkte 308

Ich würde vorschlagen, niemals $_REQUEST zu verwenden, sondern $_POST für Formulare mit der Post-Methode. Wenn Sie $_REQUEST verwenden, haben Sie keine Garantie dafür, dass die Daten aus den Postdaten stammen, was zu Sicherheitslücken in Ihrem Skript führen kann. Also ist es besser,

$NumRows = $_POST['NumRows'];

zu verwenden, um den Zählwert in PHP abzurufen

0voto

myk. Punkte 323

Gehen Sie für Ajax-Anruf. Jedes Mal, wenn die Schaltfläche "Absenden" geklickt wird, wird ein Ajax-Anruf gemacht und die erforderlichen Daten an eine PHP-Seite gesendet.

hier gehen Sie durch diese Links und sie werden dir auf jeden Fall helfen

http://www.w3schools.com/jquery/ajax_post.asp

http://api.jquery.com/jQuery.post/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X