我有一个重复数据的表单:
<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 {
}
}
});
});
});
当数据不重复时(没有数组值)我没有问题,但在这种情况下出现了问题。有人可以帮帮我吗?
答案 0 :(得分:1)
根据建议,使用
data: $(this).serialize()
在你的jQuery提交功能中。保留输入名称中的方括号。在PHP中,您将能够像这样访问您的数据:
$myInputs = $_POST['myInput'];
$myTextAreas = $_POST['myTextArea'];
两个变量都是从表单中检索的值数组。有关PHP数组的更多信息可用here。
编辑:如果你需要$ myInputs的值作为用逗号分隔的字符串(例如,&#34; value1,value2,value3 ......&#34;而不是带有&#34; value1&#34的数组;等),您可以在以下之后立即执行以下操作:
$myInputs = implode(', ', $myInputs); // this will convert the array to a string
答案 1 :(得分:0)
试试这个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 {
}
}
});
});
});
请参阅此答案,在数据库中添加多个文本框值:Adding multiple textbox entry to a mysql database