我试图通过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 的内容
但是在成功功能中我得到了正确的值。我不知道问题出在哪里!
这是一张图片以获得更多解释
答案 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)