从value属性获取<li>元素的值

时间:2016-12-22 07:26:21

标签: javascript php html css sql

我正在为一个学校项目开发一个小型网站。在一个页面上,我遍历一个通过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标签之间的值。

3 个答案:

答案 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"]
....