qq807722947 2021-07-25 03:34 采纳率: 92.1%
浏览 80
已结题

ajax的提交数据到另一PHP问题

我的HTML代码是这样的


<form name="biaodan" method="post" action="">
姓名:<input type="text" id="xingming"name="xingming" /><br />
品牌:<input type="text" name="pinpai" /><br />
订单:<input type="text" name="dingdan" /><br />
邮箱:<input type="text" name="youxiang" /><br />
<input type="button" value="提交表单" onClick="saveUserInfo()">
</form>

我需要把表单内的数据发送到ajax_so.php 请问怎么写,只需要ajax代码,php接受我知道是这样的


<?php
        $xingming= $_POST['xingming'];
        $pinpai= $_POST['pinpai'];
        $dingdan= $_POST['dingdan'];
        $youxiang= $_POST['youxiang'];
?>

我知道大概的写法,但是提交不上去


var userName = f.xingming.value;
var userAge = f.pinpai.value;
var userSex = f.dingdan.value;
var userSex1 = f.youxiang.value;
//接收表单的URL地址
var url = "./ajax_so.php";
//需要POST的值,把每个变量都通过&来联接
var postStr  = "xingming="+ userName +"&pinpai="+ userAge +"&dingdan="+ userSex +"&youxiang="+ userSex1;
  • 写回答

3条回答 默认 最新

  • 一眼青苔 2021-07-26 09:50
    关注

    1.双重请求问题:

    对于js提交php请求,如果已经决定使用ajax,那么在form上就不用再填写表单的提交方式post,和提交目的地址 action
    否则,当你点击按钮的时候,就会发送两个请求出去。第一个是ajax发送的,第二个是form表单发出去的,这一个可以在开发者工具中的 network中看到。

    2.php接收参数没有写错

    3.ajax传递参数出错

    如果没有明确指定ajax的头部信息,那么ajax传递上服务器的参数应该是json结构,或者formData。而并非直接拼接字符串,如果是直接字符串拼接到地址之后,请使用get请求的方式

    4.完整代码如下:

    html+js

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
    </head>
    <body>
    
    <form name="biaodan">
        姓名:<input type="text" id="xingming" name="xingming"/><br/>
        品牌:<input type="text" name="pinpai"/><br/>
        订单:<input type="text" name="dingdan"/><br/>
        邮箱:<input type="text" name="youxiang"/><br/>
        <input type="button" value="提交表单" onClick="saveUserInfo()">
    </form>
    <script>
        function saveUserInfo() {
            var data = {};
            $('[name="biaodan"]>input').not('[type="button"]').each(function (i, v) {
                data[$(v).attr('name')] = $(v).val();
            });
            var url = './ajax_so.php';
            $.ajax({
                url: url,
                type: "post",
                data: data,
                dataType: "json",
                success: function (result) {
                    console.log(result);
                }
            });
        }
    </script>
    </body>
    </html>
    
    
    

    php:

    <?php
    $xingming = $_POST['xingming'];
    $pinpai = $_POST['pinpai'];
    $dingdan = $_POST['dingdan'];
    $youxiang = $_POST['youxiang'];
    echo json_encode($_POST, true);
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月31日
  • 已采纳回答 7月28日
  • 创建了问题 7月25日

悬赏问题

  • ¥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键失灵