gpt4 book ai didi

javascript - 如何使用ajax传递可变参数名称

转载 作者:行者123 更新时间:2023-12-01 00:41:16 24 4
gpt4 key购买 nike

尝试调用后端 php 脚本,该脚本读取和写入 mysql 数据库,并想定义我想动态读取或写入哪个字段(又名列)。

除了我作为字段传递给 javascript 函数的动态参数名称外,一切都通过了。

如果我将字段硬编码为“mapstring”(与 mysql 数据库中的列名匹配),那么它就可以工作。但是 writeabdata.php 被编写为写入任何字段名称,具体取决于传递给它的内容。

我必须如何处理传递给 writeabdata() 的字段字符串参数,以便它在 .ajax 调用的数据部分中正确传递?

function writeabdata(table, id, field, mapstring) {
//alert ("table = "+table+" id = "+id+" field = \'"+field+"\' value = "+value);
$.ajax({
type: 'GET',
url: 'writeabdata.php',
data: {
'table': table,
'id': id,
field: mapstring
},
success: function (data) {
alert ("data Saved "+ data);
}
});
}

最佳答案

通常,编写时,您会希望使用“POST”类型而不是“GET”类型。 POST 用于将数据发布到数据存储,而 GET 用于检索数据。但是,如果没有更多代码,很难对其进行调试,所以我将在黑暗中拍摄几张照片。

首先,稍微清理一下代码并统一格式 - 像其他项目一样将“字段”放在引号中。虽然这可能无法解决您的问题,但 JSON standard实际上被定义为仅使用双引号。

其次,如果我们能看到 PHP 代码,那将会有所帮助 - 我的猜测是响应的解释方式有问题。我建议您出于调试目的让 Fiddler 运行并检查实际请求以确保您将所有必需的字段发送到服务器。

一旦您向我们更新了更多信息,我就可以更新我的答案 - 但我会先切换到 POST。

更新我想我误解了这个问题——如果您想让 data.field 真正成为 data.somefield,因为该属性的名称可以更改为您想要的任何内容,这很简单:

数据[字段] = 映射字符串

换句话说:

function writeabdata(table, id, field, mapstring) {
//alert ("table = "+table+" id = "+id+" field = \'"+field+"\' value = "+value);

var dataObj = {
'table': table,
'id': id
};
dataObj[field] = mapstring;

$.ajax({
type: 'GET',
url: 'writeabdata.php',
data: dataObj,
success: function (data) {
alert ("data Saved "+ data);
}
});
}

与您收到的一些评论相反,正如您在上面看到的,您可以使用对象上的数组访问器动态设置属性名称。它运行顺畅。构建静态命名的数据对象属性,然后通过数组访问器添加其他属性。

关于javascript - 如何使用ajax传递可变参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com