#php #jquery #mysql #ajax
#php #jquery #mysql #ajax
Вопрос:
Я обычно работаю с .NET но у меня есть страница php, которая вызывает ajax post через другой php-скрипт с параметрами, а затем вызывает хранимую процедуру. Но это не работает при попытке записи в базу данных mysql. Кто-нибудь может сказать мне, что я делаю не так, спасибо за любую помощь.
вызов jquery
$(document).ready(function () {
$('#ValidateTest').hide();
$('#cf_submit').click(function () {
if ($('#cf_message').val() == '' || $('# cf_name').val() == '') {
$('#ValidateTest').html('Please complete.').css({ 'color': 'red' }).show();
return;
}
var parameters = {
'name': $('#cf_name').val(),
'message': $('#cf_message').val()
}; //Use JSON to pass parameters into ajax calls
//Make ajax call to post to database
$.ajax({
type: 'POST',
url: 'SendTest.php',
datatype: 'json',
data: parameters,
success: function () {
$('#ValidateTest').html('Thank-you!').css({ 'color': 'green' }).show();
}
});
}); //End button click
}); //end jquery call
php скрипт
<?php
$con = mysql_connect('host', 'username', 'passw');
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("", $con);
mysql_query("CALL sp_CreateTestimony("$_POST['message']", "$_POST['name']")");
mysql_close($con);
?>
Комментарии:
1. ОН не отправляет данные в базу данных. Я не уверен, что не так. Также я проверил консоль firebug, и даже не похоже, что вызывается вызов ajax, хотя выполняется функция успеха.
2. Какую ошибку mysql_error вы получаете от mysql? Кроме того, я предполагаю, что отсутствующая цитата перед
host
— это просто опечатка, но вы должны это исправить.3. Я не уверен, как читать любые ошибки, которые я получаю, но то, что у меня есть выше, не возвращает ошибку.
4. Шаг первый — добавить
error
функцию к вашему вызову ajax, чтобы вы могли видеть проблему. Что-то вроде:error: function(jqXHR, textStatus, errorThrown) {alert(textStatus ":" errorThrown);}
5. Добавлена ошибка, по-прежнему ничего, функция успеха по-прежнему выполняется
Ответ №1:
Вы выполняете ajax-запрос с использованием json. итак, сначала вам нужно декодировать json
$data = json_decode($_POST['data']);
Затем вы можете получить доступ к сообщению и имени, используя массив $data.