我有一个重复数据的表单:
<form action="" method="post" id="myForm">
<?php foreach ($array as $value) { ?>
<input type="text" name="myInput[]" id="myInput" value="<?php $value->data1 ?>"/>
<textarea name="myTextArea[]" id="myTextArea"><?php $value->data2 ?></textarea>
<?php } ?>
<a href="#" id="submit">save</a>
</form>
我尝试使用此脚本使用 ajax 保存值:
jQuery(function(){
jQuery("#submit").click(function(e){
e.preventDefault();
var formData = {
'myInput' : jQuery('input[name=myInput]').val(),
'myTextArea' : jQuery("textarea#myTextArea").val()
};
jQuery.ajax({
url : 'someUrl',
type : 'POST',
data : formData,
dataType: 'json',
encode : true,
success: function(response){
if (response.success==true) {
}
else {
}
}
});
});
});
当数据不重复(没有数组值(时,我没有问题,但在这种情况下出了点问题。有人可以帮助我吗?
按照建议,使用
data: $(this).serialize()
在你的 jQuery 提交函数中。将输入名称中的方括号保留不变。在您的 PHP 中,您将能够像这样访问您的数据:
$myInputs = $_POST['myInput'];
$myTextAreas = $_POST['myTextArea'];
这两个变量都将是从表单中检索的值数组。有关 PHP 数组的更多信息,请参阅此处。
编辑:如果您需要$myInputs的值作为逗号分隔的字符串(例如,"value1,value2,value3..."而不是带有"value1"等的数组(,您可以立即执行以下操作:
$myInputs = implode(', ', $myInputs); // this will convert the array to a string
试试这个jQuery代码:
jQuery(function(){
jQuery("#submit").click(function(e){
e.preventDefault();
var formData = $("#myForm").serialize();
jQuery.ajax({
url : 'someUrl',
type : 'POST',
data : formData,
dataType: 'json',
encode : true,
success: function(response){
if (response.success==true) {
}
else {
}
}
});
});
});
请参考这个答案在数据库中添加多个文本框值:向mysql数据库添加多个文本框条目