无法使用ajax发送元素ID数据

时间:2016-05-23 17:52:44

标签: javascript php jquery ajax

我试图通过ajax发送id数据,但我总是得到未定义的变量错误。   ajax可以很好地处理表单数据,但是当我尝试获取id值时会出现这个问题。

PHP / html代码

SELECT val FROM table2
WHERE exists (SELECT 1 FROM table1 WHERE id = 1 and table2.id = ANY(array))

JQuery:

<ul class="sub-menu">
    <?php
        $get_cats = retrieve_cat();
        while($cat_rows = mysqli_fetch_array($get_cats)){

            $id   = $cat_rows['category_id'];
            $title = $cat_rows['category_name'];
            echo "<li><a herf='post_category.php' class='abc' data-id='$id' id='$id' data-target='post_category'> $title </a></li>";
        }
    ?>
</ul>

post_category.php 页面只是为了回应测试它的值:

$(".abc").click(function () {
   var id = $(this).attr("id");        
   edit_data(id);

  function edit_data(id)
  {
    $.ajax({
        url:"post_category.php",
         method:"POST",
        data:{id:id},
        dataType:"text",
        success:function(data){
            alert(data);
        }
    });
  }
});

问题我得到了这个错误,正如我所说:

  

注意:未定义的索引: C:\ xampp \ htdocs \ unv \ post_category.php 6 的内容

但是在成功功能中我得到了正确的值。我不知道问题出在哪里!

这是一张图片以获得更多解释

http://store2.up-00.com/2016-05/1464026786681.png

4 个答案:

答案 0 :(得分:1)

有一个错字。我重写了代码的一些部分。你可以试试这个:

<script>
    $(document).on('click', '.abc', function(){
        var id = $(this).data('id');
        edit_data(id);
        function edit_data(id) {
            $.ajax({
                url:"post_category.php",
                method:"POST",
                data:{id:id},
                dataType:"text",
                success:function(data){
                    alert(data);
                }
            });
        }
    });
</script>

答案 1 :(得分:1)

因为您在页面中加入了post_category.php所以当它不在时会尝试回显id,因为在点击后ID才可用,因此您必须添加跨度包括post_category.php页面:

<span id="my-id-here"></span>

然后在成功回调时附加id

....
success:function(data){
    $('#my-id-here').append(data);
}

希望这有帮助。

答案 2 :(得分:0)

您的问题是method:"POStT",请使用下面的代码更改此内容。

 method:"POST"

这是方法中的拼写错误。实际上方法名称是post。

答案 3 :(得分:0)

请你改变

method:"POST",

type: "POST",

有关详细信息,请查看此Link