Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阿贾克斯赢了';t启动对php表单的POST请求_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript 阿贾克斯赢了';t启动对php表单的POST请求

Javascript 阿贾克斯赢了';t启动对php表单的POST请求,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,出于某种原因,我的表单不会发布,有没有关于原因的想法(我已经知道我服务器上的所有其他内容都可以运行)?代码如下: PHP HTML/ajaxjs 姓名: 信息: 回复 函数pos(){ 变量值=$(“形式”).serialize(); $.post('form.php',值,函数(响应){ console.log(“响应:+响应”); });} 我的网站上的演示: jakesandbox.com/dnd/ (以上未提供的任何信息将根据要求在评论中提供)问题在于,您的按钮实

出于某种原因,我的表单不会发布,有没有关于原因的想法(我已经知道我服务器上的所有其他内容都可以运行)?代码如下:

PHP



HTML/ajaxjs



姓名:

信息:


回复 函数pos(){ 变量值=$(“形式”).serialize(); $.post('form.php',值,函数(响应){ console.log(“响应:+响应”); });}


我的网站上的演示:

jakesandbox.com/dnd/


(以上未提供的任何信息将根据要求在评论中提供)

问题在于,您的按钮实际上是在提交表单(本质上是在提交表单时重新加载页面)。您需要做以下两件事之一:

  • 将按钮更改为
    type=“button”
    以防止其提交(表单元素中的按钮变为提交按钮):
  • 回复
    
  • 阻止单击操作发生(从而阻止提交):
  • 回复
    功能pos(e){
    e、 预防默认值();
    变量值=$(“形式”).serialize();
    $.post('form.php',值,函数(响应){
    console.log(“响应:+响应”);
    });}
    
    -或-

    回复
    
    事实证明,您的表单实际上是通过GET请求正常发送的(您可能会看到页面重新加载)。当表单中的按钮没有指定类型(默认为submit)时,会发生此错误

    表单中“提交”类型的按钮提交表单,而“按钮”类型的按钮不提交表单

    只需将属性type=“button”添加到按钮中,您的问题就会得到解决

    <button type="button" onclick="pos();">reply</button>
    
    回复
    
    在php端进行调试,以确定数据是否真的来了

    <?php
    header('Content-Type: application/json');
    echo json_encode($_POST);
    

    控制台中是否有错误?你确定
    与表单的序列化值相关吗?好的,我明天早上试试这个,然后回来报告
    <button type="button" onclick="pos();">reply</button>
    
    <button type="button" onclick="pos(event);">reply</button>
    <script type="text/javascript">
    function pos(e){
    e.preventDefault();
    var values=$("form").serialize();
    $.post('form.php', values, function(response) {
        console.log("Response: "+response);
    });}
    </script>
    
    <button type="button" onclick="pos(); return false;">reply</button>
    
    <button type="button" onclick="pos();">reply</button>
    
    <?php
    header('Content-Type: application/json');
    echo json_encode($_POST);
    
    $.post('form.php', values, function(response) {
       console.log(response); // return json
    });}