我将以这种格式从javascript向php发送数据:
var str = $('#description').summernote('code');
var formData = $('#form').serialize();
var formData2=formData+'&data='+encodeURIComponent(str);
$.ajax({
type: 'POST',
url: 'test.php',
data: formData2,
cache: false,
success: function (data) {
}
});
但是,我无法在php中获取数据。 我正在使用:
$title=$_POST['title'];
获取标题,但它表示找不到索引,这是一个数组而不是字符串。我可以获得标题'数据以及许多其他值?
但是,
$myfile = fopen("test.txt", "a") or die("Unable to open file!");
fwrite($myfile, var_export($_POST, true));
fclose($myfile);
给了我这个:
array (
'title' => 'test title',
'from_datetime' => '',
'sno' => ''22,
)
来自javascript控制台的原始格式:
title=test%20title&from_datetime=&description=br%3E%3C%2Fp%3E%3Cp%3E-----
形式:
<div id="form_div" >
<form id="form" method="post" action="javascript:submit_data();" >
<div class="col-xs-12 col-sm-12">
<input name="title" id="title" placeholder="title" type="text" class="form-control" >
</div>
<div class="col-xs-12 col-sm-12">
<input name="desc" id="desc" placeholder="desc" type="text" class="form-control" >
</div>
</div>
答案 0 :(得分:2)
您似乎没有通过ajax发送适当的数据。尝试序列化表单中的所有数据
var dataSerialized = $('#form').serialize();
$.ajax({
type: 'POST',
url: 'test.php',
data: dataSerialized,
cache: false,
success: function (data) {
console.log('success');
}
});
然后在var_dump($_POST);
文件中执行test.php
,看看您是否收到title
字段。
有关serialize()
$ _POST定义传递an associative array of variables,因此以下格式是正常的。
array (
'title' => 'test title',
'from_datetime' => '',
'sno' => ''22
)
不正常的是,与您显示的html代码相比,数组中没有相同的字段。
答案 1 :(得分:-1)
您的代码是否在运行之前检查请求是否是帖子? 如果$ _POST中没有任何内容可循环播放,则foreach将跳过。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// …
}