<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>
我想将newhour数组值传递给php并使用它们插入表中。 所以php文件,exp.php:
$data = explode(",", $_POST['data']);
foreach($data as $d){
echo $d;
$sql = "insert into exp_table (hour) values ('$d')";
mysql_query($sql);
}
但是我不能接受这些价值观。代码有什么问题? 请你帮助我好吗? 提前谢谢。
根据我在php端尝试过的答案,但它返回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
}
答案 0 :(得分:0)
在ajax数据帖子中传递没有JSON.stringify
的数组。并使用$_POST['data']
获取php文件中的数据。
我刚试过下面的代码而且效果很好。
<?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>
答案 1 :(得分:0)
您不必在javascript中对数组进行字符串化。
.ajax照顾所有这些。
传递
data: {newhours: newhour},
然后你将在PHP代码中获得$_POST['newhours']
,这将是你在javascript中拥有的数组。
答案 2 :(得分:0)
在Ajax中没有&#34; type&#34;参数,使用&#34;方法&#34;。
除了一切都应该有效之外,您可能需要在php文件中使用json_decode($_POST['data'])
来解码json
希望它有所帮助!