0

我有一个包含 30 个字段的表单:3 个重复 10 次的字段。这是我的代码:

<form id="artikelform" method="POST" name="controleartikelen" action="">
<table id="controle">
    <tr><th>Maakartikel</th><th>Aantal</th><th>Leverdatum</th></tr>
    {for $i=1 to 10}
        <tr>
            <td><input type="text" name="artikel" class="artinput"/></td>
            <td><input type="text" name="aantal" class="aantalinput"/>&nbsp;x</td>
            <td><input type="text" name="datum" class="dateinput"/></td>
        </tr>
    {/for}
</table>
<input type="button" onclick="javascript:startControle();" value="Controleer"/>
</form>

我想通过 AJAX(POST 方法)将我的表单值发送到 PHP 脚本。我试图$.param($("#artikelform").serializeArray());用我的 ajax 作为 POST 数据发送,但该函数的结果不可用(只是一种 GET 格式的很多变量)。将此表单与 AJAX 结合使用的最佳方式是什么?也许另一种使用方式serializeArray()

编辑:

这是我的 AJAX 请求代码:

$.ajax({
            url: 'myscript.php',
            cache: false,
            data: formdata,
            type: "POST"
        }).done(function(data){
            $("#resultwrapper").html(data);
        })
4

2 回答 2

3

任何一个:

1) 使用 PHP 函数 json_decode() 将 JSON 编码的数据结构映射到 PHP 数组,或者

2) 不要序列化有效负载,而是将变量命名为 php 数组,因此:

    <tr>
        <td><input type="text" name="artikel[]" class="artinput"/></td>
        <td><input type="text" name="aantal[]" class="aantalinput"/>&nbsp;x</td>
        <td><input type="text" name="datum[]" class="dateinput"/></td>
    </tr>
于 2013-05-21T14:04:37.657 回答
1

我认为你应该尝试$('#artikelform').serialize()而不是你应该能够毫无问题$.param($("#artikelform").serializeArray());地访问你的 php 脚本中的字段$_POST['fieldname']

于 2013-05-21T14:03:47.650 回答