dsjz1119 2017-05-11 21:32
浏览 28
已采纳

从javascript获取数据后无法从$ _POST获取数据

I am sending data to php from javascript in this format :

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) {

                            }
                        });

But, I'm unable to get the data in php. I'm using :

$title=$_POST['title'];

to get title but it says that the index is not found and this it is an array and not a string . HOw can I get 'title' data along with many other values?

But ,

$myfile = fopen("test.txt", "a") or die("Unable to open file!");
fwrite($myfile, var_export($_POST, true));
fclose($myfile);

gives me this :

array (
  'title' => 'test title',
  'from_datetime' => '',
 'sno' => ''22,
)

raw format from javascript console:

title=test%20title&from_datetime=&description=br%3E%3C%2Fp%3E%3Cp%3E-----

form:

 <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条回答 默认 最新

  • douou6807 2017-05-11 21:43
    关注

    It seems you do not send the appropriate data through ajax. Try to serialize all the data from your form

    var dataSerialized = $('#form').serialize();
    
    $.ajax({
         type: 'POST',
         url: 'test.php',
         data: dataSerialized,
         cache: false,
         success: function (data) {
             console.log('success');
         }
    });
    

    Then do a var_dump($_POST); in your test.php file to see if you receive the title field. More about serialize()

    The $_POST by definition passes an associative array of variables, so the following formatting is normal.

    array (
      'title' => 'test title',
      'from_datetime' => '',
      'sno' => ''22
    )
    

    What is not normal is that you do not have the same fields in the array as compared to the html code you show.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵