普通网友 2016-09-29 12:29
浏览 38

将数组值从javascript传递给php

<script>
$("#submit").click(function () {
   var newhour= [];
   for (var i = 0; i < arrayNumbers.length; i++) {
        newhour.push(arrayNumbers[i].toString().split(','));   
        console.log("each: " + newhour[i]); // output: each: 07:00,08:30
                                                       each: 18:00,19:00                                                   
   }
   console.log("all: " + newhour); //output: all: 07:00,08:30,18:00,19:00

   var jsonString = JSON.stringify(newhour);
   $.ajax({
         type: "POST",
         url: "exp.php",
         data:{data: jsonString}, 
         cache: false,
         success: function(){
                  alert("OK");
         }
   });
});
<script>

I want to pass the newhour array values to php and use them to insert into a table. so php file, exp.php:

$data = explode(",", $_POST['data']);
foreach($data as $d){
  echo $d;
  $sql = "insert into exp_table (hour) values ('$d')";
  mysql_query($sql);
}

However I can not take the values. What is wrong with the code? Could you please help me? Thanks in advance.

according to the answers i tried this on php side, but it returns NULL.

$data = json_decode($_POST['data'],true);
//$data = explode(",", $_POST['data']);
echo "data: " .$data;
var_dump($data); // no output
foreach($data as $d){
  echo $d; // no output
}
  • 写回答

3条回答 默认 最新

  • doz97171 2016-09-29 12:32
    关注

    Pass the array without JSON.stringify in ajax data post. And fetch the data in php file using $_POST['data'].

    I just have tried below code and it working great.

    <?php
    if(isset($_POST['data'])){
      print_r($_POST);exit;
    }
    ?>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
    $(document).ready(function() {
       var newhour= [];
       arrayNumbers = [['07:00','08:30'],['08:30','18:00','19:00']];
       for (var i = 0; i < arrayNumbers.length; i++) {
            newhour.push(arrayNumbers[i].toString().split(','));   
            console.log("each: " + newhour[i]); 
            // output: each: 07:00,08:30 each: 18:00,19:00                                                   
       }
       console.log("all: " + newhour); //output: all: 07:00,08:30,18:00,19:00
    
       $.ajax({
             type: "POST",
             url: "abc.php",
             data:{data: newhour}, 
             cache: false,
             success: function(data){
                console.log(data);
             }
       });
    });
    </script>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值