You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过jQuery AJAX POST方法提交表格数据到PHP并存入MySQL

jQuery AJAX 传参到PHP并存入MySQL实现方案

前端代码修正

现有代码存在一处明显笔误,修改后可正常传参:

// 原代码prenom取值错误,改为取#prenom表单值
var nom = $("#nom").val();
var prenom = $("#prenom").val();

var tab = [];

$(".choosed").each((index,elem)=> {
    tab.push($(elem).attr("alt"));
})

$.ajax({
    type: "POST",
    url: "gamay.php",
    // 已定义的nom、prenom变量可以直接复用,无需重复取val
    data:{
        nom: nom,
        prenom: prenom,
        service: $("#service").val(),
        choix: tab,
        demande: $("#demande").val()
    },
    // 若后端返回JSON格式结果,可新增dataType配置简化解析
    dataType: 'json',
    success: function(response){
        // 可先打印返回结果确认存库状态
        // console.log(response)
        $(".box").hide();
        $(this).attr("disabled",false);
        $(".formations").removeClass("btn-primary");    
        $(".formations").addClass("btn-secondary"); 
        $(".formations").removeClass("choosed");
        $(".box2").toggleClass("transform-active");
        
        $("#saveName").fadeIn(500);
        $("#successDiv").show();
        $('html,body').animate({ scrollTop: 0 }, 'slow');
    },
    error : function() {
        alert("KO")
    }
});

jQuery会自动将choix对应的数组转换为PHP可识别的choix[]参数格式,无需额外序列化处理。

后端gamay.php处理逻辑

1. 接收前端参数

直接通过$_POST全局变量接收所有参数,数组类型的choix会自动解析为PHP数组:

<?php
// 接收参数,为空时设置默认值避免报错
$nom = $_POST['nom'] ?? '';
$prenom = $_POST['prenom'] ?? '';
$service = $_POST['service'] ?? '';
$choix = $_POST['choix'] ?? [];
$demande = $_POST['demande'] ?? '';

2. 数据存入MySQL

推荐使用PDO预处理语句操作数据库,避免SQL注入风险。数组类型的choix可根据业务需求选择存储方式:

  • 仅需归档存储:将数组转为JSON字符串存入单个字段
  • 需要单独查询每个选择项:拆分数据存入关联表

以下为JSON存储的示例代码:

// 连接数据库,替换为实际的数据库配置
$pdo = new PDO('mysql:host=localhost;dbname=你的数据库名;charset=utf8mb4', '数据库用户名', '数据库密码');
// 数组转JSON字符串,保留中文不转义
$choixJson = json_encode($choix, JSON_UNESCAPED_UNICODE);
// 预处理SQL语句,替换为实际表名和字段名
$stmt = $pdo->prepare("INSERT INTO 你的表名 (nom, prenom, service, choix, demande) VALUES (?, ?, ?, ?, ?)");
$saveRes = $stmt->execute([$nom, $prenom, $service, $choixJson, $demande]);

// 给前端返回操作结果
echo json_encode([
    'code' => $saveRes ? 200 : 500,
    'msg' => $saveRes ? '保存成功' : '保存失败'
]);
?>

调试方法

如果出现参数异常,可先在gamay.php顶部加入var_dump($_POST);,同时在前端AJAX的success回调中打印response,确认参数接收正常后再开发存库逻辑。


内容的提问来源于stack exchange,提问作者Loli Pronoms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:45:02