如何在Ajax中传递没有表单的div id

时间:2015-11-18 13:10:13

标签: javascript php jquery html ajax

我正在尝试捕获被点击元素的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;
}

2 个答案:

答案 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},