我正在为一个学校项目开发一个小型网站。在一个页面上,我遍历一个通过SQL查询填充的数组。数据将显示如下:
<ul class="list-group">
<li class="list-group-item" name="id" value="36"><span class="badge">9999</span>Testval</li>
</ul>
该li
元素的名称始终是静态的,但该值是用PHP填充的。该值指的是DB中的ID。我正在尝试为delete语句编写一个查询,如下所示:
DELETE FROM `Kredit` WHERE ID=id;
当用户单击该特定li元素上的删除按钮时,应检索id
。将有多个li
元素都具有不同的ID。是否可以使用PHP检索value属性中的id?
我在Stackoverflow上搜索了这个问题,但所有问题都是指我的案例“testval”中li标签之间的值。
答案 0 :(得分:5)
在我看来,你需要Javascript才能做到这一点,jQuery代码将会像下面这样。我没有看到删除按钮更具体,但我会解释代码并希望对你足够清楚。
$( "#delete" ).click(function() { // when delete is clicked
var id = $(this).attr("value"); // get id value of clicked li's delete
$.ajax({
type: 'GET',
cache: false,
aysync: true,
dataType: 'json',
data: { delete : id},
url: "ajax.php", // cal ajax.php with ?delete=123, use $_GET['delete']
success: function(data){
$(this).closest('li').remove(); // if ajax is done, remove this li
}
});
此示例适用于值id,我认为您不希望通过像testval这样的字符串而不是唯一ID来搜索数据库。
答案 1 :(得分:1)
您可以使用.attr
获取值
$(document).ready(function () {
$('.list-group-item').click(function () {
alert($(this).attr("value"));
});
});
value
不是valid attribute
的{{1}},但您仍然可以获得li
,但最好使用value
答案 2 :(得分:0)
不。你必须通过ppost / ajax将值从用户端(js)传递到你的后端(php)。如果你有这样的话:
<form action="action.php" method="post">
<input name="id" id="submitter" value="00">
</form>
<li id="210">//your elem
... Another elems
<ul class="delete">Delete</ul>
</li>
让我们来看看我们的js:
<script>
window.onload=function(){
Deleters=document.getElementsByClassName("delete");
for(i=0;i<Deleters.length;i++){
deleter=Deleters[i];
deleter.onclick=function(){
send(this.parentNode.id);//or .value
//this gets the id of the parents node (the li elem)
};
}
};
function send(value){
document.getElementById("submitter").value=value;
document.forms[0].submit();
}
</script>
现在你需要一个php来处理(称之为action.php):
<?php
$delid=$_POST["id"]
....