【发布时间】:2016-08-22 08:49:53
【问题描述】:
我已经尝试了很多解决方案,但没有一个适合我。
所以我有一个 javascript 数组,我应该将它传递给 php 以将其上传到 mysql。
此代码位于php 页面中,其中是可编辑的网格。如果在网格中按 Enter 键,它会创建一个新行,其中包含可编辑单元格的值,该值进入 var val=[],这应该通过 `php 进入 mysql。
我尝试了两种传球方式,如下所示
我的代码:
<script type="text/javascript" >
var dbs=0;
var val=[];
function myFunction(e) {
if(e.keyCode == 13){
var newId = (new Date()).valueOf();
var value=gridbox.cells(1,0).getValue();
gridbox.addRow(newId,value);
val.push(value);
gridbox.cells(1,0).setValue('');
gridbox.editCell(1,0);
dbs=dbs+1;
}
}
function upload(){
var jsonString = JSON.stringify(val);
/*$.ajax({
type: "POST",
url: "upload.php",
data: {'data' : jsonString},
cache: false,
success: function(){
alert("OK");
}
});*/
var jsonData = $.ajax({
url: "upload.php",
data: { 'data' : val},
dataType:"json",
async: false
}).responseText;
}
</script>
UPLOAD.PHP
它在数据库中创建新的空行,所以它运行,但 $data 是空的
//$data = json_decode(stripslashes($_GET['data']));
$data=$_GET['data'];
// here i would like use foreach:
/*
foreach($data as $d){
echo $d;
}*/
$db_irattar = new indotekDbConnection("irattar");
for($i=0;$i<4;++$i){
$sql="INSERT INTO akt_hely(Tipus,Megnevezes)
VALUES('2','$data[$i]')
";
}
$db_irattar->Execute($sql);
$db_irattar->Close();
unset($db_irattar);
?>
【问题讨论】:
-
您在浏览器中查看
val的值了吗? (使用console.log(val))或者查看监控网络发送的内容?你用什么浏览器? -
是的,里面有数据。
-
它有多大? URL 参数的大小是有限制的,所以最好使用
POST而不是GET。 -
使用 Firefox 内置的 network monitor。查看数据是否确实作为查询参数发送。
-
它不适用于post。
标签: javascript php jquery mysql