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日

悬赏问题

  • ¥25 C语言代码,大家帮帮我
  • ¥15 请问以下文字内容及对应编码是用了什么加密算法或压缩算法呢?
  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿