Javascript - передача динамического рекурсивного значения PHP как функции javascript

Новое в JavaScript. У меня есть цикл while в PHP, который выглядит так

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";
      }

Что мне нужно сделать, это когда вы нажимаете на флажок, чтобы взять значение первого типа ввода и добавить его. Поскольку это цикл while, он сгенерирует таблицу с множеством флажков, каждый из которых имеет свое значение. Так что если вы, например, отметили 3 флажка, написанный мной javascript должен взять 3 значения и добавить их, а затем распечатать. Если возможно, мне нужно также добавить значение при проверке и вычесть его при снятии отметки.

Вот неработающий код JavaScript:

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

Заранее спасибо.

2 ответа

Решение

Вы не проходите this.value, но this к функции, которая принимает один атрибут. Имя переменной не имеет значения, имеет значение только содержимое. Хотя вы не можете принять this в функции это зарезервированная переменная.

Также не обязательно использовать window.alert, может быть сделано только с alert,

Итак, код:

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

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

this.value не является допустимым именем параметра, и использование владельца функции в качестве параметра является плохой идеей. Вместо этого, пусть это будет нормальный параметр.

function ControllaCodice(input) {
    alert(input.value);
}
Другие вопросы по тегам