所以,我使用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上非常罕见。 –