如何将javascript数组发送到PHP?

时间:2016-08-22 08:49:54

标签: javascript php jquery mysql

我已经尝试了很多解决方案,但没有人为我工作。 所以我有一个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);
?>

Network monitor

1 个答案:

答案 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']);