-1

我在表单中有一个隐藏字段,我想用 ajax 处理,但它不起作用

formname = idke
hiddenfieldname = id

$(document).ready(function () {

    $('.timeline_shout_buttons').click(function () {
        $('#nodig').dialog({
            width: 625,
            height: 'auto',
            buttons: {
                Ok: function () {
                    $.ajax({
                        type: "POST",
                        url: "delete.php?id=document.getElementById(#id).value",
                        data: $("idke").serialize(), // serializes the form's elements.
                        success: function (data) {
                            alert(data); // show response from the php script.
                        }
                    });
                    return false; // avoid to execute the actual submit of the form.

                }
            }
        });
    });
});
4

5 回答 5

2

我相信问题就在这里

data: $("idke").serialize()

您应该给id表单一个并更改这样的数据参数(假设新的id也将是idke)...注意#

data: $("#idke").serialize()

另外,请参阅詹姆斯的回答。

于 2013-05-16T15:20:33.217 回答
2

您将这个确切的字符串作为您的 url 传递:

"delete.php?id=document.getElementById(#id).value"

您打算做的是从元素中获取值。但是,由于您将其放在 中"",因此它只是一个字符串,不会被评估。你需要做这样的事情:

"delete.php?id=" + document.getElementById("id").value;

现在请注意,document.getElementById代码不再位于字符串中。

于 2013-05-16T15:22:21.347 回答
1

您需要将您的 id 附加到 POST 数据正文中,如下所示:

url: "delete.php",
data: $("#idke").serialize() + "&id=" + $('#id').val()
于 2013-05-16T15:21:48.197 回答
1
url: "delete.php?id=document.getElementById(#id).value",

基于此和您帖子中的 php 标签,我假设您来自 PHP 背景。PHP 的优点之一是变量插值 - 替换“我的名字是 $name”以包含 $name 变量的值。

但是,javascript 默认情况下不这样做。尝试用类似的东西替换这个特定的行:

url: "delete.php?id=" + document.getElementById("id").value,

Vyx.ca 的回答对于数据行中缺少的 # 也是正确的。

于 2013-05-16T15:22:30.473 回答
1

$("idke") 中的选择器“idke”不是有效的 css 选择器。

如果您将其保留在字符串中,也document.getElementById(#id).value不会解析url: "delete.php?id=document.getElementById(#id).value"。也许你的意思是url: "delete.php?id="+ document.getElementById("id").value

于 2013-05-16T15:22:50.967 回答