这个问题可能是重复的,但我读到与此相关的所有帖子时感到困惑。(真诚的道歉!)基本上,我想将一个javascript数组发送到一个php文件,并将该数组写入文本文件。我学会了使用JSON和AJAX的最佳方法。我的代码显示了ajax部分的“成功”,并且还创建了一个文件(php代码),但是是一个空文本文件。
$('#tabletomodify').on('change','.street',
function (event)
{
event.preventDefault();
var row=( $(this).closest('tr').prop('rowIndex') );
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
var ideSelected= this.id;
var values = [valueSelected];
for ($i=3;$i<row;$i++)
{
var dv="selectstate"+$i;
var dv1=document.getElementById(dv).value;
var sl="selectstreet"+$i;
var sl1=document.getElementById(sl).value;
var po="selectbuilding"+$i;
var po1=document.getElementById(po).value;
var concat=dv1+sl1+po1;
values.push(concat);
}
JSON = JSON.stringify(values);
$.ajax({
url: "get_buildings.php",
type: 'POST',
data: JSON ,
success: function(){
alert("Success!")
}
});
PHP代码: -
<?php
$json = $_POST['JSON'];
$p = json_decode(JSON);
$file = fopen('test.txt','w+');
fwrite($file, $p);
fclose($file);
echo 'success?';
&GT;
答案 0 :(得分:2)
两个缺陷:
a)您没有正确发送数据 - 它缺少字段名称:
data: {data: JSON}
^^^^---this will be the key in PHP's $_POSt
b)你在PHP中使用了无效常量,甚至没有解码MIGHT传入的数据。你应该:
$p = json_decode($_POST['data']);
^^^^--matching what you have in the `data` field in Javascript.