我在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
}
}
?>
答案 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等)