将一串字符串从JS传递给PHP

时间:2017-10-19 05:24:43

标签: javascript php jquery arrays

我在JS中有一个字符串数组,我想将它发送到php(能够将它添加到db)。这是我目前的代码 - >显示成功消息,但不显示$ _POST ['array']变量。

请记住,我想发送的数组仅包含字符串值,并称为times

JS

 function fetchDates(){
times = [];
var table = document.getElementById("timeScheduleBody");
var tableRows = table.getElementsByTagName("tr");
for(var j=0;j<tableRows.length;j++){
    var tableCells = tableRows[j].getElementsByTagName("td");
    for(var i = 0;i<tableCells.length;i++){
        if(tableCells[i].getAttribute('class').includes("success")){
            var arr = tableCells[i].getAttribute('value').split("-");
            var date, hour, mins;
            date = arr[0];
            hour = arr[1];
            mins = arr[2];
            times.push(date);
            times.push(hour);
            times.push(mins);
        }

    }
}
window.alert(times);

//send array to PHP from jQuery
jQuery.ajax({  
     type: "post",  
     url: window.location.href,  
     data: {array:times},
     success: function(){  
         alert("done"); 
     }  
}); 

}

PHP

<?php
if(isset($_POST['array'])){
$array = $_POST['array'];
echo $array[0];//just testing -> output: nothing
  foreach($array as $d){
     print '<script>window.alert($d);</script>';//also just to test -> output: nothing
  }
}
?>

1 个答案:

答案 0 :(得分:0)

但是你没有得到并显示ajax调用的响应,看看你在成功函数中获得响应的响应......

PHP(test.php - 创建此文件并将其放在同一目录中):

<?php
if(isset($_POST['array']))
    print_r($_POST['array']);
?>

JQUERY:

$.ajax({  
    type: 'POST',  
    url: 'test.php',  
    data: { array: times },
    success: function(response) {  
        alert(response); 
    }  
}); 

您将看到数组内容。您正确地发送了javascript数组,但如果您想查看ajax调用的响应,您必须在success函数中获取它并对其执行某些操作(提醒它,将其添加到DOM等)