Как сделать запрос к базе данных с помощью JavaScript? - PullRequest
9 голосов
/ 10 апреля 2011

Еще один вопрос от новичка.У меня есть переменная php, которая запрашивает базу данных для значения.Он хранится в переменной $ publish, и его значение изменится (в базе данных), когда пользователь нажмет гиперссылку.

if ($publish == '') { 
Link to publish.html
} else { 
Link to edit.html
} 

В фоновом режиме я запрашиваю таблицу базы данных для некоторыхданные, которые я сохранил в переменной $ publish.Если $ publish пусто, во всплывающем окне будет добавлена ​​ссылка для publish.html.Всплывающее окно обработает форму и добавит данные в базу данных, а это означает, что $ publish больше не пуст.Чего я хотел бы добиться, так это того, как только форма будет обработана во всплывающем окне и данные будут добавлены в базу данных, ссылка должна измениться на edit.html.Это может произойти, когда страница повторно запросит базу данных, но это должно произойти без обновления страницы.

Как это можно сделать, используя javascript, jquery или ajax ??Пожалуйста, помогите.

Ответы [ 8 ]

14 голосов
/ 10 апреля 2011

Javascript сам по себе не может использоваться для работы с базой данных.Это делается с помощью php (или языка сервера на ваш выбор).Ajax используется для отправки запроса вашему php-скрипту с использованием javascript, который, в свою очередь, будет связываться с БД.И это не требует обновления страницы.

Так что то, что вы пытаетесь сделать, может быть легко достигнуто с помощью ajax.Поскольку вы упомянули jquery, вы можете проверить методы $ .ajax или $ .post в jquery, которые делают процесс еще более простым.

Вам необходимо обработать форму, используя ajax.Ajax-запрос отправляется в php-скрипт, который внесет необходимые изменения в базу данных и отправит новую ссылку (ссылка на edit.html) в ответе.Получив ответ, просто замените текущий элемент привязки на новый ..

, например, *. 1007 *

$.post(url, formdataobject , function (resp) {
   $("a.youra").text('edit').attr('href', resp);
});

url - там, где расположен скрипт php

formdataobject - объект javascript, который будет иметь данные формы в виде пар ключ-значение

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

Внутри функции обратного вызова jquery используется для изменения текста внутри элемента привязки на edit, а атрибут href изменяется на значение, которое пришло в ответе.

$. Post означает, что мы используем метод post.поэтому к параметрам можно обращаться как к элементам массива $ _POST в php.После обновления базы данных вы можете просто echo вывести новую ссылку, и она будет получена в ответе.

Также есть другие форматы, в которых вы можете получить ответ, например.XML, JSON.

8 голосов
/ 10 апреля 2011

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

Думайте о javascript как о языке, который может только инструктировать вашего WEB-БРАУЗЕРА, как действовать. Javascript выполняется после того, как сервер уже завершил обработку вашей веб-страницы.

PHP, с другой стороны, работает на вашем веб-сервере и имеет возможность общаться с вашей базой данных. Если вы хотите получать информацию из своей базы данных с помощью javascript, вам нужно будет, чтобы javascript попросил PHP запросить базу данных через AJAX-вызов PHP-скрипта.

Например, вы можете сделать так, чтобы javascript вызывал скрипт: http://www.myserver.com/ajax_function.php?do=queryTheDatabase

В итоге: Javascript не может подключиться к базе данных, но может попросить PHP сделать это. Я надеюсь, что это помогает.

2 голосов
/ 10 апреля 2011

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

<div id="publish_link"><a href="#" id="publish">Publish</a></div>

Что касается отправки формы, используйте Ajax для отправки данных на сервер, чтобы выполнить обновление и получить ответ, чтобы изменить ссылку для редактирования или что-то еще:

$.post("submit.php", { some_field: "some_value"}, function(response) {
    if(response.isPublished)
       $('#publish_link', window.opener.document).html('<a href="edit.html">Edit</a>');
});

Обычно ваша ссылка для публикации содержится в div с идентификатором publish_link, поэтому вы изменяете ее содержание позже после обработки данных без перезагрузки страницы. Во всплывающем окне, в котором вы будете выполнять обработку формы, это делается с помощью метода jQuery Ajax POST для отправки данных. Затем ваш сценарий принимает эти данные, обновляет базу данных и в случае успеха возвращает ответ. Функция jQuery POST получает этот ответ, и там проверяется, истинно ли isPublished, получите открывающее окно всплывающего окна (ваше главное окно) и обновите ссылку до Edit. Просто идея, может быть, не самая лучшая.

0 голосов
/ 28 июля 2012

это приложение для node.js выполняет MySQL запросы https://github.com/felixge/node-mysql

0 голосов
/ 10 апреля 2011

Для этого вам нужно использовать AJAX, например .post() или .get() или JSON.

0 голосов
/ 10 апреля 2011

можно;) сначала вы должны создать php файл для запроса базы данных и вернуть что-то вроде true или flase, а затем с помощью url файла проверьте функцию и получите ответ

function find_published(folder_id) {
    var aj_url = "{{server_path}}/ajax/url"
    var list;
    $.getJSON(aj_url+"?callback=?&",
          function(data) {
              //here is your data... true false ... do every thing you want
          }
    );
};
0 голосов
/ 10 апреля 2011

Что ж, я думаю, что понимаю ваше задание, но вы должны получить отправную точку, попытайтесь понять это:

  • попытайтесь понять, что такое переменные клиента и переменные сервера.
  • javascript не соединяется с базой данных.
  • вы можете использовать javascript для извлечения данных в определенную «переменную объекта».
  • Используя ajax-методы jquery, вы можете публиковать эти данныесделать другую страницу, которая выполнит правильные действия
0 голосов
/ 10 апреля 2011

Это нельзя сделать с помощью javascript, jquery или ajax. только серверный скрипт может запрашивать базу данных. с помощью запроса ajax вы можете получить вывод скрипта. ajax-запросы могут быть отправлены либо с использованием чистого JavaScript, либо с помощью jquery.

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