Javascript 在$.post-JQuery内创建动态变量赋值
我可以在Javascript 在$.post-JQuery内创建动态变量赋值,javascript,php,jquery,html,mysqli,Javascript,Php,Jquery,Html,Mysqli,我可以在$.postJQuery/Ajax代码中使用动态变量吗?我想知道我在哪里犯了错误,或者我被误解了JQuery的$.post 我动态创建了变量,并从文本字段中为其赋值。现在我想在JQuery的$中使用这些变量 下面的代码: 工作正常的部分: var-boxFields=[“customerId”、“customerName”、“customerContact”、“CustomerMail”]; var-boxVar=[]; 对于(var x=0;x您不能在post函数中放入循环(循环不是
$.post
JQuery/Ajax代码中使用动态变量吗?我想知道我在哪里犯了错误,或者我被误解了JQuery的$.post
我动态创建了变量,并从文本字段中为其赋值。现在我想在JQuery的$中使用这些变量
下面的代码:
工作正常的部分:
var-boxFields=[“customerId”、“customerName”、“customerContact”、“CustomerMail”];
var-boxVar=[];
对于(var x=0;x您不能在post函数中放入循环(循环不是对象),但可以在post之前构造数据。更简洁的方法是:
var data = {
requestType: "updateRow"
};
$('input').each(function() { // change the selector to be more precise
data[$(this).attr('id')] = $(this).val();
});
console.log(data);
$.post("url.php", data, function(data) {
//Success Code Lines..........
});
SQL注入
即使您可以在JS中执行一些检查,但真正防止SQL注入的唯一方法是在服务器端与SQL数据库交互时转义/检查/使用特殊方法
我可以使用for循环在$.post内创建动态对象吗
不在调用<代码>中的POST()>,不与<代码>无关。POST())/>代码本身或Ajax或类似的任何东西,而只是作为语言的语法。请考虑您的尝试:
$.post("url.php",
{
requestType: "updateRow",
for(var y=0;y<4;y++)
{
boxFields[y]: boxVar[y]
if(y!=3){,}
}
//...
$.post(“url.php”,
{
requestType:“updateRow”,
对于(var y=0;y)这必须发生,因为在本例中找不到名为url.php
的文件。当然这就是问题所在。但是由于数据是正确的,它应该对您正常工作。很抱歉错过了实际的问题。您的问题是什么?什么不起作用?您所说的是您的代码“工作正常”.那么…你在问什么?至于SQL注入,你会在任何与SQL server交互的地方处理它。这在本代码中都没有做。很抱歉错过了实际问题。所以基本上我无法创建动态对象(例如:customerName:)
from array?我必须按照前面的方法来做?@divy3993:在使用对象之前创建对象有什么问题?您试图在这里解决什么实际问题?您可以动态创建东西,但必须在语言语法内这样做。我在这里试图做的是,从boxF中获取数组的值ield
我可以用来获取文本字段的值,因为它们有相似的id
,也可以使用$中的id。post
作为对象名(比如:customerName:)
,等等。整个要点就是让代码更短。顺便感谢您的回复。@divy3993:“更短”代码不一定“更好”代码。不要试图让你的代码尽可能的聪明。只要让它简单明了。构建对象,在函数调用中使用对象。如果你可以在一条代码语句中清晰、轻松地构建对象,那么你可以直接在函数调用中实现。但是你不能像使用att那样使用整个控制结构清空。
var someArray = [];
for(var x = 0; x < 4; x++)
{
someArray[x] = someValue;
}
// etc.
// later...
$.post('url.php', someArray, function () { /.../ });