如何从php变量中获取数据属性?

时间:2015-12-29 12:28:39

标签: php jquery mysql ajax

我有一个表单可以使用ajax和jQuery从MySql数据库中删除记录。我试图让jQuery只选择传递给它的相关记录而不只是删除它当前所做的最上面一行记录。我想我需要得到

<div class="'.$id.'">

从我的表单中,使其成为可以选择的数据属性。希望我自己清楚。非常感谢。

<script type="text/javascript">
    //Delete Review
    $(document).ready(function(){
        //Need to get $id here.
        $(".deleteReview").click(function (e) {
            e.preventDefault();
            var username = $("#username").val();
            var film_id = $("#film_id").val();
            var id = $("#id").val();

            $.post('ajax_deleteReview.php', {
                username: username,     
                film_id: film_id, 
                id: id
            }, function(data) {
                $("#message").html(data);
                $("#message").hide();
                $("#message").fadeIn(500); 
                $("#message").fadeOut(2500); 
            });
            return false;
        });
    });
</script>
<form>
    <div class="'.$id.'">
        <input type="hidden" id="username" name="username" value="'. $username.'">
        <input type="hidden" id="film_id" name="film_id" value="'.$film_id .'">
        <input type="hidden" id="id" name="id" value="'.$id .'">
        <button type="submit" id="" class="btn btn-danger btn-xs pull-right">delete</button>
    </form>
</div>

2 个答案:

答案 0 :(得分:3)

我建议您使用data-*前缀属性来保存数据。

HTML

 <div data-id="'.$id.'" data-username="'. $username.'" data-filmid="'.$film_id .'" class="deleteReview">
    <button type="submit" id="" class="btn btn-danger btn-xs pull-right">delete</button>
 <div >

然后您可以使用.data(key)

获取它
  

返回jQuery集合中第一个元素的命名数据存储的值,由数据(名称,值)或HTML5 data- *属性设置

脚本

 //Delete Review
$(document).ready(function(){
    //Need to get $id here.
    $(".deleteReview").click(function (e) {
        e.preventDefault();
        var username = $(this).data("username");
        var film_id = $(this).data('filmid');
        var id = $(this).data('id');

        ......
        return false;
    });
});

答案 1 :(得分:0)

首先在PHP中执行类似这样的操作,将数据属性添加到删除按钮,因为您实际上并未提交真实表单。我还将deleteReview类移动到了按钮。

print '<button type="submit" class="deleteReview" data-id="'.$id.'" data-film-id="'.$film_id.'" data-username="'.htmlentities($username).'" class="btn btn-danger btn-xs pull-right">delete</button>';

然后,在你的jQuery中,更新点击事件回调,如下所示:

$(".deleteReview").click(function (e) {
    e.preventDefault();
    var username=$(this).data('username');
    var film_id=$(this).data("film-id");
    var id=$(this).data('id');
    /* the rest of your code */

使用$(this).data('some-attribute-name')

,jQuery可以轻松访问数据属性