我已经尝试了很多解决方案,但没有人为我工作。
所以我有一个javascript数组,我应该将其传递给php
,然后将其上传到mysql
。
此代码位于php
页面,其中是可编辑网格。如果在网格中输入,则会创建一个新行,其中包含editeble单元格的值,此值将进入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的
它在db中创建了新的空行,因此它运行,但$ 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);
?>
答案 0 :(得分:5)
在我看来,您正在分配var jsonString = JSON.stringify(val);
并在ajax中发送val
。
尝试
var jsonData = $.ajax({
url: "upload.php",
data: { 'data' : jsonString},
dataType:"json",
async: false
}).responseText;
而不是
var jsonData = $.ajax({
url: "upload.php",
data: { 'data' : val},
dataType:"json",
async: false
}).responseText;
解码php中的json字符串,如$data=json_decode($_GET['data']);