这个问题可能重复,但我在阅读所有与此相关的帖子时感到困惑。(真诚地道歉!)基本上,我想将一个javascript数组发送到php文件,并将数组inturn写入文本文件。我了解到最好的方法是使用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?';
?>
两个缺陷:
a) 您没有正确发送数据-缺少字段名:
data: {data: JSON}
^^^^---this will be the key in PHP's $_POSt
b) 您在PHP中使用了无效的常量,甚至没有对传入的数据进行解码。你应该有:
$p = json_decode($_POST['data']);
^^^^--matching what you have in the `data` field in Javascript.