Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在$.post-JQuery内创建动态变量赋值_Javascript_Php_Jquery_Html_Mysqli - Fatal编程技术网

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 () { /.../ });