我正在尝试捕获被点击元素的id并将其传递给php页面。我没有使用表格。
除了没有数据发送到php页面外,一切正常。当我使用浏览器或php日志检查代码时,没有显示错误。我只是点击锚点,没有任何反应。
我看得很广泛,没有关于这个主题的细节。每个主题都谈到通过表单传递信息
Html代码
<li class="click" id="name"><a href="#">Name</a></li>
JQuery的
$(".click").click(function() {
var datastring = $(this).attr('id');
$.ajax ({
type: "POST",
data: datastring,
cache: false,
url: "index.php",
success: function(ht) {
alert(ht);
}
});
});
的index.php
if (isset($_POST['datastring'])) {
$dynamic_list = $_POST['datastring'];
echo $dynamic_list;
}
答案 0 :(得分:3)
该函数中的data
属性应该是一个对象,以便它可以表示一个键=&gt;值对,此时你只是给它一个没有名字的值,所以它认为值是名称而且没有值。
$(".click").click(function() {
var datastring = $(this).attr('id');
$.ajax ({
type: "POST",
data: {myparam: datastring},
cache: false,
url: "index.php"
});
});
在PHP中,你现在应该有索引$_POST['myparam']
,它应该包含元素的ID。
我会删除var datastring = $(this.attr('id'));
并直接使用该属性,您的示例将变为:
$(".click").click(function() {
$.ajax ({
type: "POST",
data: {myparam: $(this).attr('id')},
cache: false,
url: "index.php"
});
});
修改强>
如果您想更改$_POST
索引的名称,可以将myparam
更改为您喜欢的任何内容,这样,如果您希望$_POST
请求中的索引为{{1}你可以改变以下行:
datastring
到
data: { myparam: $(this).attr('id') }
会改变你的帖子请求:
data: { datastring: $(this).attr('id') }
到
$_POST['myparam']
由于这个变量只使用一次你根本不使用它而只是使用直接值:)
答案 1 :(得分:3)
只需替换
data: datastring,
带
data: {"datastring":datastring},