所以,我使用PDO來存儲數據庫中的數據。 我有一個數組($ myitems)與幾個項目,其中每個項目有兩個屬性:id和名稱。 用PHP我使用這個陣列創建的列表,就像你可以在下面的代碼中看到:如何在JQuery函數中獲取對象的屬性值?
的index.php中
<ul class="items">
<?php foreach($myitems as $item): ?>
<li class="test">
<form action="edit.php" method="post">
<span class="itemlist"><?php echo $item['name']; ?></span>
</form>
</li>
<?php endforeach; ?>
</ul>
所以當列表中的項目用戶雙擊,它將跨度「轉換」爲輸入文本,因此用戶可以更新項目的名稱。我設法使用JQuery來做到這一點,我可以獲取該項目的名稱,因爲它顯示在範圍標記中。這是我應得的名字的價值和改變跨度到輸入文本:
在JS文件
$(".itemlist").dblclick(function (e) {
e.stopPropagation();
var currentEle = $(this);
var name = $(this).html();
updateVal(currentEle, name);
});
function updateVal(currentEle, name) {
$(document).off('click');
$(currentEle).html('<input class="liVal" name="editname" type="text" value="' + name+ '" />');
$(".thVal").focus();
$(".thVal").keyup(function (event) {
if (event.keyCode == 13) {
$(currentEle).html($(".liVal").val());
}
});
}
它可以在瀏覽器中正常,但在更新項目的價值數據庫我需要提交表單,這是我如何做它:
也是JS文件
$(".liVal").onkeyup(function(event) {
if (event.keyCode == 13) {
this.form.submit();
return false;
}
});
提交後的形式,我可以使用輸入的屬性名稱得到了edit.php項目名稱的價值,就像這樣:
在edit.php
if(isset($_POST['editname'])){
$newname= trim($_POST['editname']);
}
但要更新一個項目我也需要它的ID。這裏是問題,我怎麼能得到這個ID?我真的是PHP和JQuery的新手,我需要幫助。
順便說一句,謝謝你提出一個明確的問題。在SO上非常罕見。 –