2016-07-27 66 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); 
}