提交和foreach ajax数据多个数组

时间:2015-07-01 01:02:48

标签: php arrays ajax foreach

首先:我能够通过AJAX成功将 1数组传递给PHP:

成功的例子

// Basic HTML Form
// (with sample inputs & values)
// ------------------------------

<form method="post" id="unitDataForm" >
    <!-- sample 1 -->
        <input type="text" name="seqImg[]" value="111" />
        <textarea name="seqDesc[]" />sample 1</textarea>
    <!-- sample 2 -->
        <input type="text" name="seqImg[]" value="222" />
        <textarea name="seqDesc[]" />sample 2</textarea>
</form>

// Script for sending a single array
// ---------------------------------

        var seqImg = new Array();
            $('input[name="seqImg[]"]').each( function() {
            seqImg.push($(this).val());
        } );

        $.ajax({
            type: 'POST',
            url: 'test_form_process2.php',
            data: {seqImg:seqImg},
            cache: false,
            async: false
        })

// The PHP...
// -----------------

//...config with $dbc...validation & error testing...

if(!empty($_POST["seqImg"])) {

    $seqImgs = $_POST['seqImg'];
    $seqArray = $seqImgs;
    $sql= "INSERT INTO  unit_test(`unit_id`,`seq_img`) VALUES ";    
        $i=0;
        $seqArray_count = count($seqArray);
        foreach($seqImgs as $seqImg) {
            $seqImg = mysqli_real_escape_string($dbc, $seqImg);
            $end = ($i == $seqImgs_count-1) ? ';' : ',';
            $sql .= "('".$unit_id1."','".$seqImg."')".$end;
            $i++;

以上工作正常(参见jsFiddle)......除了......我也想通过此POST中的seq_desc []提交。我已经尝试了一些我发现的例子,但我不是100%如何在ajax &amp;中submit/attach 然后foreach php 中的附加数组

当前尝试(不工作):

// added the seqDesc input
var seqDesc = new Array();
$('textarea[name="seqDesc[]"]').each( function() {
    seqDesc.push($(this).val());
    } );

// and updated the ajax data to:
    data: {seqImg:seqImg,seqDesc:seqDesc},

// The php
// --------
// added 
$seqDesc=$_POST['seqDesc'];
$seqArray = array_combine($seqImgs,$seqDescs);
foreach($seqArray as $seqImg=>$seqDesc) {

目前,我在控制台中获得[] ...

1 个答案:

答案 0 :(得分:0)

事实证明,所有提交/接收编码在上面都正常工作。问题出在我的LOGIC(if / else)声明中......

在控制台日志中看到[],我意识到我的php中的if(!empty){}else{}逻辑恰好是倒退的。我只需将if(!empty)...转回if(empty)....

if(empty($_POST["seqImg"])
    && empty($_POST['seqDesc']) ) { }else {