2014-10-11 66 views
0

我創建一個頁面,應該從數據庫中讀取數據,將其顯示爲表格,並允許按行進行編輯(使用AJAX調用)。下面是簡要的代碼段,其中的問題就來了 -JAVASCRIPT:通過的參數是「未定義」

的Javascript:

function editParam(bname, button) { 
alert(bname); //this part doesn't happen, the error on console comes up before it 
tr = button.parentNode; 
while (tr && tr.nodeName.toUpperCase() !== "TR" && tr.nodeName.toUpperCase() !== "BODY") { 
    tr = tr.parentNode; 
} 
if (!tr || tr.nodeName.toUpperCase() !== "TR") { 
    return; 
} 
//some more code 
} 

PHP:

//get $row_users['Name'] 
while ($row_users = mysqli_fetch_array($results)) { 
echo "<form method='POST'> //some <tr><td></td></tr> 
<button onclick='editParam(".$row_users['Name'].", this)'>Edit</button> 
</form>"; 
} 

我在列名稱的數據就像是 「B1」, 「C2」,等等。

錯誤onclick按鈕:B1未定義。

運行其他文本或數字的代碼時,它工作正常。所以我明白我的問題與數據類型有關。但是,我不知道如何解決相同的問題。

任何建議將不勝感激,謝謝!

+1

您需要將一個字符串傳遞給函數。 – CBroe 2014-10-11 13:20:12

+0

@CBroe你能解釋一下這種情況嗎? – VGupta 2014-10-11 13:26:48

+0

您正在拋出名稱,所以得到的屬性值看起來像'editParam(B1,this)' - 應該是'editParam(「B1」,this)' – Pointy 2014-10-11 13:27:21

回答

1

您需要在$row_users['Name']附近添加引號,否則它會被解釋爲JS變量。

"<button onclick='editParam(\"" . $row_users['Name'] . "\", this)'>Edit</button>"; 
+0

Aah它的工作!萬分感謝! – VGupta 2014-10-11 13:34:44