<input type='text' class='inputmode' data-id=7 value = 'sky'>
<input type='text' class='inputmode' data-id=5 value = 'earth'>
<input type='text' class='inputmode' data-id=3 value = 'sea'>
js
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);
}
});
PHP
$sql = "update mods set mode = :mode where id = :id";
$stmt = $db->prepare($sql);
$stmt->execute(array(
":id" => $_POST['a'],
":mode" => $_POST['b']
));
这适用于第一个.inputmode
目前我为每个人重复这个程序
有没有办法解决所有问题 - 立刻?
答案 0 :(得分:1)
使用表格序列化方法:
<form name="frmData" id="frmData" method="post">
<input type='text' class='inputmode' name="inputmode[7]" data-id=7 value = 'sky'>
<input type='text' class='inputmode' name="inputmode[5]" data-id=5 value = 'earth'>
<input type='text' class='inputmode' name="inputmode[3]" data-id=3 value = 'sea'>
</form>
在提交时,您可以按以下方式拨打您的ajax:
$.ajax({
url: 'pro.php',
type: 'post',
data: $('#frmData').serialize(),
success: function(data) {
console.log(data);
}
});
在Php中,您将获得inputmode
数组使用该数组在数据库中更新。
答案 1 :(得分:1)
您的代码存在一些逻辑问题,
你有3个输入,并且总是将一个输入的值发送到php端。
所以功能上你的代码工作正常。
并得到你想要的东西,
1)首先你需要推送所有输入值
2)在php端迭代这些值,然后用每个值更新你的数据库。
以下是一个快速示例:
<ins>
在你的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);
}
});