Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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 如何将这种特定类型的数据添加到MySQL中_Javascript_Php_Mysql_Json - Fatal编程技术网

Javascript 如何将这种特定类型的数据添加到MySQL中

Javascript 如何将这种特定类型的数据添加到MySQL中,javascript,php,mysql,json,Javascript,Php,Mysql,Json,我尝试将其转换为json数组,并将json字符串解析为MySQL,因为这对我来说最有意义。另外,我已经使用以下方法将其转换为json字符串: JSON.stringify(res); 这是正确的方法吗?如何将x、y、widt和height添加到MySQL中?我认为问题在于我无法在PHP脚本中读取Javascript变量 $('#save').click(function(){ var res = _.map($('.grid-stack .grid-stack-item:vis

我尝试将其转换为json数组,并将json字符串解析为MySQL,因为这对我来说最有意义。另外,我已经使用以下方法将其转换为json字符串:

 JSON.stringify(res);
这是正确的方法吗?如何将x、y、widt和height添加到MySQL中?我认为问题在于我无法在PHP脚本中读取Javascript变量

 $('#save').click(function(){
      var res = _.map($('.grid-stack .grid-stack-item:visible'), function (el) {
el = $(el);
var node = el.data('_gridstack_node');
return {
    id: el.attr('data-custom-id'),
    x: node.x,
    y: node.y,
    width: node.width,
    height: node.height
};
});
window.location.href = "index.php?name=" + JSON.stringify(res);
<?php


if (isset($_GET['name'])) {
$con = mysqli_connect("localhost", "root", "", "grids");

 $jsondata = $_GET['name'] ;

 $data = json_decode($jsondata, true);

 $x = $data['x'];
 $y = $data['y'];
 $width = $data['width'];
 $height = $data['height'];

 foreach($data as $row){
 $sql = "INSERT INTO new(x, y, width, height) VALUES('".$row[$x]."', '".$row[$y]."', '".$row[$width]."', '".$row[$height]."')";
 mysqli_query($con, $sql);
 }
}

?>
});
$('#保存')。单击(函数(){
var res=u3;.map($('.grid-stack.grid-stack-item:visible'),函数(el){
el=$(el);
变量节点=el.数据(“网格堆栈节点”);
返回{
id:el.attr('data-custom-id'),
x:node.x,
y:node.y,
宽度:node.width,
高度:node.height
};
});
window.location.href=“index.php?name=“+JSON.stringify(res);

您有错误的单引号双引号sequence,并且没有构建正确的字符串连接

$sql = "INSERT INTO new(x, y, width, height) VALUES('" .$row[$x]. 
      "', '" .$row[$y]."', '".$row[$width]. "', '".$row[$height]."')";

请注意以这种方式使用VAR进行sqlinjection。您应该使用适当的参数化sql prepare

修复它,但仍然不更新MySQL表。控制台说我有此错误:return语句后的代码无法访问。它引用了以下内容:window.location.href=“index.php?name=“+JSON.stringify(res);你有javascript中的返回..这一结束函数..不可能在返回后运行代码..你的代码中有错误的逻辑..我明白了,这是有道理的.我做了更改,但仍然没有任何更改.我更新了上面的代码,我的代码中的逻辑现在正确了吗?我不知道你真正想做什么..乍一看似乎是这样的您混合了客户端和服务器代码..在同一个..请记住,这两部分在不同的时间和地点执行..您应该将客户端代码分为一个源代码和另一个源代码中的服务器代码..这都在
index.php
中吗?如果是这样,那么您将JSON作为
name=
发送,但作为读取e> 工作
。您还应该使用准备好的语句。对不起,在我的代码中,它都被称为“name”。使用准备好的语句会修复我的错误吗?它会修复任何与参数相关的未替换错误(例如,如果这些参数中有引号)。它还将保护您免受自动SQL注入攻击。您可能还需要
encodeURI(JSON.stringify(res))
才能将其正确传递到PHP。您是否打算在
单击事件中包含重定向?