从javascript

时间:2017-05-11 21:32:03

标签: php

我将以这种格式从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>

2 个答案:

答案 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') {
    // …
}