Php 一次从多个输入更新表

Php 一次从多个输入更新表,php,mysql,Php,Mysql,php var a = $('.inputmode').eq(0).data('id'); var b = $('.inputmode').eq(0).val(); $.ajax({ url: 'pro.php', type: 'post', data: {'a': a, 'b': b}, success: function(data) { console.log(data); } }); 这适用于第一个.inputmode 目前,我对他

php

var a = $('.inputmode').eq(0).data('id');
var b = $('.inputmode').eq(0).val();
$.ajax({
    url: 'pro.php',
    type: 'post',
    data: {'a': a, 'b': b},
    success: function(data) {
        console.log(data);
    }
});
这适用于第一个
.inputmode

目前,我对他们中的每一个人都重复这个过程。

有没有办法一次解决所有问题?

使用表单序列化方法如下:

$sql = "update mods set mode = :mode where id = :id";
$stmt = $db->prepare($sql);
    $stmt->execute(array(
        ":id" => $_POST['a'],
        ":mode" => $_POST['b']
    ));

在Php中,您将获得
inputmode的数组
使用该数组在数据库中进行更新。

使用表单序列化方法,如下所示:

$sql = "update mods set mode = :mode where id = :id";
$stmt = $db->prepare($sql);
    $stmt->execute(array(
        ":id" => $_POST['a'],
        ":mode" => $_POST['b']
    ));

在Php中,您将获得
inputmode的数组
使用该数组在数据库中进行更新。

您的代码存在一些逻辑问题

您有3个输入,并且总是将一个输入的值发送到php端

因此,从功能上讲,您的代码运行良好

为了得到你想要的

1) 首先,您需要推送所有输入值
2) 在php端,迭代这些值,然后用每个值更新数据库


下面是一个快速示例:

$.ajax({
    url: 'pro.php',
    type: 'post',
    data: $('#frmData').serialize(),
    success: function(data) {
        console.log(data);
    }
});
在php端,您将在关键元素“data”下收到一个数组——正如我们在ajax初始化中设置的那样——您需要迭代该数组并按如下方式执行查询:

var inputmode = $('.inputmode');
var dataObj = []; // you data array
inputmode.each(function (k, v) {
    var obj = {}; // your input data object
    obj['id'] = $(this).data('id');
    obj['value'] = $(this).val();
    dataObj.push(obj); // pushing every input data object to your parent data array
});

$.ajax({
    url: 'pro.php',
    type: 'post',
    data: {'data': dataObj},
    success: function(data) {
        console.log(data);
    }
});

您的代码存在一些逻辑问题

您有3个输入,并且总是将一个输入的值发送到php端

因此,从功能上讲,您的代码运行良好

为了得到你想要的

1) 首先,您需要推送所有输入值
2) 在php端,迭代这些值,然后用每个值更新数据库


下面是一个快速示例:

$.ajax({
    url: 'pro.php',
    type: 'post',
    data: $('#frmData').serialize(),
    success: function(data) {
        console.log(data);
    }
});
在php端,您将在关键元素“data”下收到一个数组——正如我们在ajax初始化中设置的那样——您需要迭代该数组并按如下方式执行查询:

var inputmode = $('.inputmode');
var dataObj = []; // you data array
inputmode.each(function (k, v) {
    var obj = {}; // your input data object
    obj['id'] = $(this).data('id');
    obj['value'] = $(this).val();
    dataObj.push(obj); // pushing every input data object to your parent data array
});

$.ajax({
    url: 'pro.php',
    type: 'post',
    data: {'data': dataObj},
    success: function(data) {
        console.log(data);
    }
});

所以获取所有模式,然后使用子句。获取所有模式,然后使用子句。在php方面,我尝试了
echo$\u POST['inputmode']
echo$_POST['frmData']-未成功。如何在php中获取这些值?您将在php端使用$_POST['inputmode'][7]或$_POST['inputmode'][5]获取值,我尝试了
echo$_POST['inputmode']
echo$_POST['frmData']-未成功。我如何在php中获取这些值?您将使用$_POST['inputmode'][7]或$_POST['inputmode'][5]获取值。我认为您是个天才。非常感谢。我认为你是个天才。谢谢。