Подтвердить что ты не робот

Как я могу использовать jQuery для запуска MySQL-запросов?

Можно ли запустить MySQL-запрос с помощью jQuery? Я пытаюсь подражать функциональности голосования на сайтах SE.

Счетчик голосов в SE автоматически обновляется без необходимости перезагрузки страницы (это то, что у меня есть сейчас, скрытая форма, которая повторно отправляется на текущую страницу, но запускает небольшой блок на PHP, который обновляет оценку вопроса в базе данных). Я предполагаю, что это делается с использованием Javascript/jQuery, поскольку он является динамическим.

Как я могу это сделать? Есть ли библиотека, которая упрощает и упрощает (например, PHP)?

4b9b3361

Ответ 1

Вы можете использовать ajax для вызова страницы сервера (PHP/ASP/ASP.NET/JSP), и на этой странице сервера вы можете выполнить запрос.

http://api.jquery.com/jQuery.ajax/

HTML

<input type='button' id='btnVote' value='Vote' />

Javascript

Этот код будет вызываться, когда пользователь нажимает кнопку с идентификатором "btnVote". Ниже script использует функцию "ajax", записанную в библиотеке jquery. Он отправит запрос на указанную страницу как значение свойства "url" (ajaxserverpage.aspx). В этом примере я отправляю значение 5 запроса для ключа, называемого "ответ".

 $("#btnVote").click(function(){     
    $.ajax({
            url: "ajaxserverpage.aspx?answer=5",
            success: function(data){
                alert(data)
             }
          });

  });

а на вашей странице aspx вы можете прочитать запрос (в этом примере answer = 5) и построить запрос и выполнить его повторно в базе данных. Вы можете вернуть данные, написав Response.Write(в asp и asp.net)/echo в PHP. Все, что вы возвращаете, вернется к переменным данным. Если выполнение запроса было успешным, вы можете вернуть сообщение типа "Голосование" или что-то подходящее для вашего приложения. Если в вашем блоке try-catch произошла ошибка, верните сообщение для этого.

Перед созданием запроса убедитесь, что вы правильно дезактивируете ввод. Обычно я группирую свои функции и помещаю их в один файл. Пример: страница MY Ajax, которая обрабатывает связанные с пользователем вещи, будет иметь методы для ValidateUser, RegisterUser и т.д.

EDIT: согласно вашему комментарию,

Поддержка jQuery. Вот формат

 $.post(url, function(data) {
        alert("Do whatever you want if the call completed successfully")
 );

что эквивалентно

 $.ajax({
        type: 'POST',
        url: url,           
        success: function(data)
                  {
                    alert("Do whatever you want if the call completed successfully")
                  }           
       });

Это должно быть хорошее чтение: http://en.wikipedia.org/wiki/Same_origin_policy

Ответ 2

Это всего несколько строк на вашем любимом языке.

Javascript

$.post('script.php', { id: 12345 }, function(data) {
    // Increment vote count, etc
});

PHP (упрощенный)

$id = intval($_POST['id']);
mysql_query("UPDATE votes SET num = num + 1 WHERE id = $id");

Существует много разных способов сделать это.