AJAX - PHP重复保存数据

时间:2016-02-15 17:24:24

标签: php ajax

我有一个重复数据的表单:

<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 {

             }
        }
    });
});
});

当数据不重复时(没有数组值)我没有问题,但在这种情况下出现了问题。有人可以帮帮我吗?

2 个答案:

答案 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