PHP, вызов jquery ajax не работает

#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.