Опубликовать результат MySQL, используя AJAX через jQuery - PullRequest
1 голос
/ 04 апреля 2009

Будучи относительно новым для javascript, AJAX и jQuery, я хочу опубликовать 3 значения в базе данных, 2 из которых являются результатами запроса mysql. Глядя на исходный код, var userid имеет правильное значение идентификатора пользователя. Второе (var obid) и третье (var authoruserid) значения. Когда я проверяю исходный код, строки, возвращаемые из запроса, являются пустыми, а значения в firebug - это просто имя переменной. Данные также не публикуются в базе данных.

Любая помощь всегда ценится.

Я действительно был бы рад, если бы кто-то просто сказал мне, что я правильно выполняю часть AJAX и что AJAX может использовать строки SQL в качестве данных, тогда я могу начать искать другие причины, почему это не работает.

Сторона сервера:

if( isset( $_POST['user_id'] ) && isset($_POST['ob_id'] ) && isset( $_POST['author_user_id']) ) {

    $result = mysql_query("INSERT INTO ilike (ilike_user_id, ilike_object_id, ilike_author_user_id) VALUES (" . mysql_real_escape_string( $_POST['user_id'] ) . ", " . mysql_real_escape_string( $_POST['ob_id'] ) . ", " . mysql_real_escape_string( $_POST['author_user_id'] ). ")" );
    echo $result ? 'Vote Succeeded' : 'Vote Failed: ' . mysql_error();
    exit;
    }
$status = $rows['status_id']; // done via a separate query
$aid = $rows['user_id']; // as above
$user_id = uid(); // User cookie check function

HTML:

<a href="javascript:;" onclick="updateScore(this)" class="blue">Vote</a>

Javascript:

<script type="text/javascript">
function updateScore( answer )
{
var userid = '<?php echo $user_id; ?>';
var obid = '<?php echo $status_id; ?>';
var authoruserid = '<?php echo $aid; ?>';
    if ( confirm( "Are you sure?" ) )
    {
        $.post('index.php', {user_id: "userid", ob_id: "obid", author_user_id: "authoruserid"}, function(d)
        {
            alert('Vote Accepted: ' + d);
            $(answer).after("<span>You Voted!</span>").remove();
        });
    }
}

</script>

Исходный код:

<script type="text/javascript">
function updateScore( answer )
{
var userid = '5';
var obid = '';
var authoruserid = '';
    if ( confirm( "Are you sure?" ) )
    {        
$.post('index.php', {user_id: "userid", ob_id: "obid", author_user_id: "authoruserid"}, function(d)
        {
            alert('Vote Accepted: ' + d);
            $(answer).after("<span>You Voted!</span>").remove();
        });
    }
}

</script>

Ответы [ 3 ]

1 голос
/ 06 апреля 2009

Мне нужно пойти к окулисту. Я посмотрел на чистую скобку в моем php-коде. Мне так жаль беспокоить вас всех. Я также избавился от переменных и просто отобразил их в списке свойств.

Приветствие.

1 голос
/ 04 апреля 2009

Где та часть вашего кода, которая присваивает значения из БД $user_id, $status_id?

Я вижу только назначение в $ aid. Может ли это быть вашей проблемой, ничто не будет присвоено $user_id и $status_id до отображения страницы?

В коде вашего сервера у вас есть $status = $rows['user_status'];, тогда как на странице вы называете его $ status_id

Заменить последнюю часть кода сервера следующим:

$status_id = $rows['user_status']; //changed $status to $status_id
$aid = $rows['user_id']; // this works

//You need an assignment to $user_id
$user_id = $rows['something'];//I'm guessing this assignment is missing
0 голосов
/ 04 апреля 2009

Я также довольно новичок в jQuery, и на самом деле я еще не использовал его функциональные возможности AJAX, поэтому прошу прощения за мое невежество. Но вы уверены, что вам нужны кавычки около идентификатор пользователя , obid и authoruserid в ключе: значения, отправленные в качестве параметров данных в записи $. функция? Потому что я не вижу кавычек вокруг имен переменных ни в справочном руководстве jQuery, ни в других примерах кода в Интернете. Мне кажется, что вы могли бы использовать кавычки только вокруг литеральных значений, как если бы вы пытались на самом деле опубликовать что-то вроде:

{user_id: "32", username: "Bob", message: "hello world!"}

Возможно, что-то подобное может работать лучше:

$.post('index.php', {user_id: userid, ob_id: obid, ...}, ...

Но я могу быть совершенно неправ ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...