I'm having trouble sending a JSON array with AJAX to a PHP file which inserts the information in the correct columns in the database. The jquery and Json works fine, but it seems like the PHP side doesn't get the values correct, or maybe the json isn't encoded correct.
Any ideas how I can fix this?
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());
UPDATE:
Jquery for sending to PHP
$( 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(){
}
});
});
Also tried to change PHP to this:
$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());