0

私はこのajax形式を持っており、最後に配列内の値を持っています。コードは以下のとおりですが、これらのアイテムのphp応答でnullが発生し続けます。私はこの.ajax呼び出しを間違って行っていると思います、どんなアイデアも非常に役に立ちます。また、.ajax呼び出しの成功セクションに何を書くべきかわかりません。それは私が欠けているものですか?以下をご覧ください。

$('#submit_third').click(function(){
    //update progress bar
    $('#progress_text').html('100% Complete');
    $('#progress').css('width','339px');
    //prepare the fourth step

   var fields = new Array(
        $('#usernameReg').val(),
        $('#passwordReg').val(),
        $('#email').val(),
        $('#firstname').val(), 
        $('#lastname').val(),
        $('#city').val(),
        $('#phone').val(),
        categoryResult,
        $("#msg").val()                     
    );

    var tr = $('#fourth_step tr');
    tr.each(function(){
        //alert( fields[$(this).index()] )
        $(this).children('td:nth-child(2)').html(fields[$(this).index()]);
    });


    //slide steps
    $('#third_step').fadeOut(1000);
    $('#fourth_step').delay(1000).fadeIn(1000);          

    $('#submit_fourth').click(function(){
        //send information to server
        console.log(fields);
       $.ajax({
            type: "POST",
            data: 'fields',
            dataType: 'json',
            url: "php/postEngine.php",
            success: function(html){

            }
        });


    });     
});

php情報(私は繁栄を使用しています:

include_once($_SERVER['DOCUMENT_ROOT'] . '/../inc/init.php');
include_once($_SERVER['DOCUMENT_ROOT'] . '/dev/form_data.php');
include_once($_SERVER['DOCUMENT_ROOT'] . '/dev/db_handling.php');
ini_set('display_errors', 'On');
try {

    $tbl_user   =   'tbl_users';

    $statement = $db->prepare("INSERT INTO $tbl_user 
        (username,
        email,
        firstname,
        lastname,
        city,
        phone)
        VALUES 
        (%s,
        %s,
        %s,
        %s,
        %s,
        %s
        )"
    );

    $db->query($statement,
        $un,
        $email,
        $firstname,
        $lastname,
        $city,
        $phone
        );

    //  Update of Email_Replied to 1

    //$db->execute("UPDATE accommodation SET Email_Replied = '1' WHERE ID = %i", $user_id); 

} catch (Exception $e) {
    echo $error_msg;
    echo $un;
    echo $email;
    echo $firstname;
    echo $lastname;
    echo $city;
    echo $phone;
    echo json_encode($un);
    $error_msg = 'An error occured on postEngine.php';

}

?>

$un         =   fRequest::get('fields[0]');
$email      =   fRequest::get('fields[2]');
$firstname  =   fRequest::get('fields[3]');
$lastname   =   fRequest::get('fields[4]');
$city       =   fRequest::get('fields[5]');
$phone      =   fRequest::get('fields[6]');

?>

4

1 に答える 1

6

そのはず :

data: fields,

いいえ

data: 'fields',

今あなたがしているのは、変数ではなく、文字列'fields'をサーバーに送信することだけですfields

また、サーバー上で配列を期待していること、およびでJSONを指定したように、クライアントなどにJSONを返すことを期待していることを確認してください。dataTypeただし、成功関数では、HTMLと呼んでいますが、そうではありません。単なる変数として重要htmlですが、JSONを期待していないように見えますが、それでもJSONを期待しています。また、がdataTypeJSONに設定されている場合、無効なJSON(HTMLなど)を含む応答は失敗しますか?

于 2012-11-06T16:13:16.247 に答える