2016-07-27 59 views
0

JavaScript新功能。我在PHP while循环看起来像这样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循环,这将生成一个包含许多复选框的表,每个复选框都具有不同的值。所以,如果你例如检查3复选框,我写的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

我用'ControllaCodice(c)'改变了onchange事件,并且以相同方式改变函数的功能,如 ControllaCodice(c){ alert(c.value); } 仍然当我检查复选框的错误是:Uncaught ReferenceError:c未定义。 – TheMerovingian

0

this.value是不是一个有效的参数名称,并使用函数的所有者作为一个参数是一个坏主意。相反,它是一个正常的参数。

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