2016-07-27 2 views
0

Новое в javascript. У меня есть цикл в то время как PHP, который выглядит, как этотJavascript - передача динамического рекурсивного значения PHP как функции javascript

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, это создаст таблицу с большим количеством флажков, каждая из которых имеет другое значение. Поэтому, если вы, например, отметьте три флажка, написанный javascript, который должен был записать 3 значения, добавьте их, а затем распечатайте. Если возможно, мне нужно будет также добавить значение при проверке и вычесть его сбрасывать.

Вот не работает код JavaScript:

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

Спасибо заранее.

ответ

0

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

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

Итак, код:

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

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

Даже используя только (это) не работает: она возвращает неперехваченное SyntaxError: Неожиданный токен это – TheMerovingian

+0

@The 'this' является зарезервированным переменным и не может быть использован. Попробуйте мой код в той форме, которую я вам предоставил. – nicael

+0

Я изменил событие onchange на «ControllaCodice (c)», а функция точно так же изменила функцию, как ControllaCodice (c) { alert (c.value); } Тем не менее, когда я устанавливаю флажок в поле «error», вы обнаружите, что ошибка: «Нет» ReferenceError: c не определен. – TheMerovingian

0

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

function ControllaCodice(input) { 
    alert(input.value); 
} 
Смежные вопросы