0

我无法将带有 AJAX 的 JSON 数组发送到 PHP 文件,该文件将信息插入数据库的正确列中。jquery 和 Json 工作正常,但似乎 PHP 端没有正确获取值,或者 json 编码不正确。

有什么想法可以解决这个问题吗?

JSON:

{
"Email": [
    {
        "Name": "My Name",
        "Phone": "1234567",
        "Email": "my@mail.com",
        "Interested_in": "Text text.",
        "User_id": "1"
    }
]
}

PHP:

$timeStamp = time();

$new_email = $_POST['NewMail'];

$email_info = $new_email->Email;

// New Email
mysql_query("INSERT INTO " . $dbPrefix . "touches (date, user_id, name, phone, email, interested_in, seen, status) VALUES ('".safeSQL($timeStamp)."', '".safeSQL($email_info->User_id)."', '".safeSQL($email_info->Name)."','".safeSQL($email_info->Phone)."', '".safeSQL($email_info->Email)."', '".safeSQL($email_info->Interested_in)."', '0', '1')") or die("Query failed: " . mysql_error());

更新:

用于发送到 PHP 的 Jquery

    $( document ).on('click', '#send_touch', function(){

    new_email = [];

    new_email.push({
    Name: $('#name').val(),
    Phone: $('#phone').val(),
    Email: $('#email').val(),
    Interested_in: $('#interested_in').val(),
    User_id: $('#email_user_id').val()
    });

    new_email = JSON.stringify({Email: new_email}, null, "\t");

        $.ajax({
            url: "core.php",
            type: "post",
            data: { NewMail: new_email
                  },
            success: function(data){  

            },
            error: function(){
            }   
     });    

});

还尝试将 PHP 更改为:

$timeStamp = time();

$new_email = json_decode($_POST['NewMail']);

$email_info = $new_email->Email[0];

// New Hashtag
mysql_query("INSERT INTO " . $dbPrefix . "touches (date, user_id, name, phone, email, interested_in, seen, status) VALUES ('".safeSQL($timeStamp)."', '".safeSQL($email_info->User_id)."', '".safeSQL($email_info->Name)."','".safeSQL($email_info->Phone)."', '".safeSQL($email_info->Email)."', '".safeSQL($email_info->Interested_in)."', '0', '1')") or die("Query failed: " . mysql_error());
4

1 回答 1

2

我相信你错过了 php 端的解码:

$new_email = json_decode($_POST['NewMail']);
于 2013-09-03T01:16:50.913 回答