AJAX POST对象返回部分数据

时间:2017-04-18 13:53:07

标签: php jquery ajax

我正在使用wamp64 webserver,我尝试将一些值发布到PHP脚本以创建PDF(使用TCPDF库)。

我有很多(或多或少80个)使用AJAX传递(POST)的字段,问题似乎是变量(或内存,我不知道)。

如果我尝试传递较少变量的一切,那就没关系,但是当我尝试POST完整的字段集时,PHP会返回关于我传递的对象的索引的错误。

这就是我尝试发布的内容:

$('#btnGeneraPDF').click(function() {   

    var campi = {
        //DATI RICHIESTA VERIFICA
        dataCompilazione: $('#data-compilazione').val(),
        dataAccettazione: $('#data-accettazione').val(),
        rifPreventivo: $('#cod-preventivo').val(),
        codRichiesta: $('#cod-rdv').val(),

        //DATI UTENTE METRICO
        UMragSociale: $('#UM-ragSociale').val(),
        UMpiva: $('#UM-piva').val(),
        UMrea: $('#UM-rea').val(),

        //DATI REFERENTE
        REFnominativo: $('#ref-nominativo').val(),
        REFtelefono: $('#ref-telefono').val(),
        REFemail: $('#ref-email').val(),
        REFindirizzo: $('#ref-indirizzo').val(),
        REFcomune: $('#ref-comune').val(),
        REFprovincia: $('#ref-provincia').val(),
        REFcap: $('#ref-cap').val(),            
        REFnote: $('#ref-note').val(),

        STRtipo1: $('#STRtipo1 :selected').text(),
        STRmarca1: $('#STRmarca1').val(),
        STRmodello1: $('#STRmodello1').val(),
        STRmatricola1: $('#STRmatricola1').val(),
        STRpistole1: $('#STRpistole1').val(),
        STRportata1: $('#STRportata1').val(),
        STRprePostPay1: $('#STRprePostPay1 :checked').val(),
        STRnote1: $('#STRnote1').val(),

        STRtipo2: $('#STRtipo2 :selected').text(),
        STRmarca2: $('#STRmarca2').val(),
        STRmodello2: $('#STRmodello2').val(),
        STRmatricola2: $('#STRmatricola2').val(),
        STRpistole2: $('#STRpistole2').val(),
        STRportata2: $('#STRportata2').val(),
        STRprePostPay2: $('#STRprePostPay2 :checked').val(),
        STRnote2: $('#STRnote2').val(),

        STRtipo3: $('#STRtipo3 :selected').text(),
        STRmarca3: $('#STRmarca3').val(),
        STRmodello3: $('#STRmodello3').val(),
        STRmatricola3: $('#STRmatricola3').val(),
        STRpistole3: $('#STRpistole3').val(),
        STRportata3: $('#STRportata3').val(),
        STRprePostPay3: $('#STRprePostPay3 :checked').val(),
        STRnote3: $('#STRnote3').val(),

        STRtipo4: $('#STRtipo4 :selected').text(),
        STRmarca4: $('#STRmarca4').val(),
        STRmodello4: $('#STRmodello4').val(),
        STRmatricola4: $('#STRmatricola4').val(),
        STRpistole4: $('#STRpistole4').val(),
        STRportata4: $('#STRportata4').val(),
        STRprePostPay4: $('#STRprePostPay4 :checked').val(),
        STRnote4: $('#STRnote4').val(),

        STRtipo5: $('#STRtipo5 :selected').text(),
        STRmarca5: $('#STRmarca5').val(),
        STRmodello5: $('#STRmodello5').val(),
        STRmatricola5: $('#STRmatricola5').val(),
        STRpistole5: $('#STRpistole5').val(),
        STRportata5: $('#STRportata5').val(),
        STRprePostPay5: $('#STRprePostPay5 :checked').val(),
        STRnote5: $('#STRnote5').val(),

        STRtipo6: $('#STRtipo6 :selected').text(),
        STRmarca6: $('#STRmarca6').val(),
        STRmodello6: $('#STRmodello6').val(),
        STRmatricola6: $('#STRmatricola6').val(),
        STRpistole6: $('#STRpistole6').val(),
        STRportata6: $('#STRportata6').val(),
        STRprePostPay6: $('#STRprePostPay6 :checked').val(),
        STRnote6: $('#STRnote6').val(),         

        STRtipo7: $('#STRtipo7 :selected').text(),
        STRmarca7: $('#STRmarca7').val(),
        STRmodello7: $('#STRmodello7').val(),
        STRmatricola7: $('#STRmatricola7').val(),
        STRpistole7: $('#STRpistole7').val(),
        STRportata7: $('#STRportata7').val(),
        STRprePostPay7: $('#STRprePostPay7 :checked').val(),
        STRnote7: $('#STRnote7').val(),         

        STRtipo8: $('#STRtipo8 :selected').text(),
        STRmarca8: $('#STRmarca8').val(),
        STRmodello8: $('#STRmodello8').val(),
        STRmatricola8: $('#STRmatricola8').val(),
        STRpistole8: $('#STRpistole8').val(),
        STRportata8: $('#STRportata8').val(),
        STRprePostPay8: $('#STRprePostPay8 :checked').val(),
        STRnote8: $('#STRnote8').val(),

        note: $('#rdv-note').val()
    };

    //GENERAZIONE PDF   
    $.ajax({
        type: 'POST',
        url: 'mysite/pdf/save.php',
        async: true,
        cache: false,
        data: {data: campi},
        beforeSend: function(){
        },
        success: function(response) {
            console.log (campi);

            setTimeout( function() {
                console.log("AJAX SUCCESS");
            }, 10 );
            if (!response.status) {
                alert("Error calling save");
                return;
            }
            if (response.status != 'OK') {
                alert(response.status);
                return;
            }
            // We had a response and it was "OK". We're good.
            window.open("mysite/pdf/pdfTest.php");

        },
        error: function( XMLHttpRequest, textStatus, errorThrown ) {
            console.log("AJAX ERROR: \n" + errorThrown);
            console.log("AJAX ERROR: \n" + textStatus);
        }
    });

})

这是save.php

<?php // this is save.php
session_start();
// DO NOT just copy from _POST to _SESSION,
// as it could allow a malicious user to override security.
// Use a disposable variable key, such as "data" here.
if (array_key_exists('data', $_POST)) {
    $_SESSION['data']             = $_POST['data'];
    $_SESSION['data.timestamp']   = time();
    // Let us let the client know what happened
    $msg = 'OK';
} else {
    $msg = 'No data was supplied';
}
Header('Content-Type: application/json; charset=utf8');
die(json_encode(array('status' => $msg)));
?>

HTML代码为:

                                <div class="tab-pane fade in active" id="tab1">                                 
                                <form class="form-horizontal" role="form">
                                    <div class="form-group">
                                        <label for="STRtipo" class="control-label sr-only">Tipo</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <select name="select2" id="STRtipo1" class="form-control">
                                                    <option value=" "> </option>
                                                    <option value="NAZ">NAZ</option>
                                                    <option value="MID">MID</option>
                                                </select>
                                            </div>
                                        </div>
                                        <label for="STRmarca" class="control-label sr-only">Marca</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRmarca1" placeholder="Marca">                                             
                                            </div>
                                        </div>
                                        <label for="STRmodello" class="control-label sr-only">Modello</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRmodello1" placeholder="Modello">                                             
                                            </div>
                                        </div>
                                        <label for="STRmatricola" class="control-label sr-only">Matricola</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRmatricola1" placeholder="Matricola">                                             
                                            </div>
                                        </div>
                                        <label for="STRpistole" class="control-label sr-only">Pistole</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRpistole1" placeholder="Pistole">                                             
                                            </div>
                                        </div>
                                        <label for="STRportata" class="control-label sr-only">Pistole</label>
                                        <div class="col-sm-2">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRportata1" placeholder="Portata">                                             
                                            </div>
                                        </div>
                                    </div>
                                </form>                             
                                <form class="form-horizontal" role="form">
                                    <div class="form-group">
                                        <label class="col-sm-2 fancy-checkbox">
                                            <input type="checkbox" id="STRprePostPay1" value="1">
                                            <span>Pre / Post Pay</span>
                                        </label>
                                        <label for="STRnote" class="col-sm-10">
                                            <div class="input-group">
                                                <span class="input-group-addon"><i class="fa fa-book"></i></span>
                                                <input type="text" class="form-control" id="STRnote1" placeholder="Note">                                               
                                            </div>
                                        </label>
                                    </div>
                                </form>
                            </div>

使用jQuery为8个乐器中的每个乐器制作:

var tabContent=$('#tab1').clone();
for (i=2;i<=nTab;i++){
$('#tab' + i).append(tabContent.html());
}

for (i=2;i<=nTab;i++){
$('#tab'+i+' select').attr('id','STRtipo' + i);
$('#tab'+i).find('#STRmarca1').attr('id','STRmarca' + i);
$('#tab'+i).find('#STRmodello1').attr('id','STRmodello' + i);
$('#tab'+i).find('#STRmatricola1').attr('id','STRmatricola' + i);
$('#tab'+i).find('#STRpistole1').attr('id','STRpistole' + i);
$('#tab'+i).find('#STRportata1').attr('id','STRportata' + i);
$('#tab'+i).find('#STRprePostPay1').attr('id','STRprePostPay' + i);
$('#tab'+i).find('#STRnote1').attr('id','STRnote' + i);
}

此代码不起作用......但如果我在对象'campi'中注释某些字段,一切正常。特别是PHP返回的问题是'STRprePostPay1'变量...它告诉我没有传递,如果我放了一个print_r函数,我看到那个变量没有传递。

有人可以帮助我吗?

感谢

0 个答案:

没有答案
相关问题