2016-07-27 15 views
0

Neu bei Javascript. Ich habe eine while-Schleife in PHP, dieJavascript - dynamische rekursive PHP-Wert übergeben als JavaScript-Funktion

while ($row_voucher=mysql_fetch_row($risultato_query_voucher)) { //INFO poche righe sotto, date_format da solo non funziona 
     echo "<tr>\n 
       <td id=" . $row_voucher[3] ."><input type='checkbox' value='" . $row_voucher[3] . "' onchange='ControllaCodice(this)' id='" . $row_voucher[6] . "'></td>\n 
       <td>" . $row_voucher[2] . "</td>\n 
       <td>" . $row_voucher[3] . "</td>\n 
       <td>" . date_format(new DateTime($row_voucher[4]), 'd/m/Y'). "</td>\n 
       <td>" . date_format(new DateTime($row_voucher[5]), 'd/m/Y'). "</td>\n 
       <td>" . $row_voucher[6] . "</td>\n 
       </tr>\n"; 
     } 

wie folgt aussieht, was ich zu tun ist, wenn Sie auf das Kontrollkästchen klicken, wird der Wert des ersten Eingabetyp zu nehmen und es hinzuzufügen. Da es sich um eine while-Schleife handelt, wird eine Tabelle mit vielen Checkboxen erzeugt, die jeweils einen anderen Wert haben. Wenn Sie zum Beispiel 3 Checkboxen aktivieren, sollte das Javascript, das ich geschrieben habe, die 3 Werte nehmen und hinzufügen und dann ausdrucken. Wenn möglich, müsste ich auch den Wert für die Prüfung hinzufügen und subtrahieren, wenn Sie die Option deaktivieren.

Hier ist das nicht funktioniert Javascript-Code:

<script type='text/javascript'> 
    function ControllaCodice(this.value){ 
    window.alert(this.value); 
    } 
</script>"; 

Danke im Voraus.

Antwort

0

Sie übergeben this.value, aber this nicht an eine Funktion, die ein Attribut akzeptiert. Der Name der Variablen ist egal, nur der Inhalt tut es. Allerdings können Sie in der Funktion this nicht akzeptieren, es ist eine reservierte Variable.

Auch ist es nicht obligatorisch zu verwenden window.alert, könnte nur mit alert getan werden.

So ist der Code:

... onchange = "ControllaCodice(this)" ... 

function ControllaCodice(c){ 
    alert(c.value); 
} 
+0

Selbst mit nur (this) funktioniert nicht: es gibt eine abgefangene Syntaxerror: unerwartetes Token dieses – TheMerovingian

+0

@The 'this' ist ein reservierter Variable und nicht verwendet werden kann. Probieren Sie meinen Code in der von mir bereitgestellten Form aus. – nicael

+0

Ich änderte das Onchange-Ereignis mit 'ControllaCodice (c)' und die Funktion auf die gleiche Weise wie ControllaCodice (c) { Alert (c.value); } Immer noch, wenn ich ein Kontrollkästchen ankreuzen, ist der Fehler: Uncaught ReferenceError: c ist nicht definiert. – TheMerovingian

0

this.value ist kein gültiger Parameternamen, und mit der Funktion Eigentümer als Parameter eine schlechte Idee ist. Stattdessen muss es ein normaler Parameter sein.

function ControllaCodice(input) { 
    alert(input.value); 
}