использовать jquery для загрузки формы ввода непосредственно на страницу - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть форма на одной странице, некоторые данные формы извлекаются из различных таблиц в моей базе данных mysql - таблицы содержат параметры для различных вариантов выбора, поэтому мои данные будут выглядеть после сценариев php следующим образомвыполняются:

 <select name="vehicleStyle">
    <option value="empty" selected="selected">- select -</option>
    <option value="coupe">Coupe</option>
    etc....
  </select>

У меня есть вторая форма, которая загружает поверх этой страницы в iframe, эта вторая форма позволяет мне обновлять данные, включенные в эту таблицу mysql, чтобы я мог добавить параметры в форму намуха.Все работает абсолютно нормально и замечательно, однако, если я обновляю (добавляю значение) эту таблицу на лету, я должен обновить страницу, чтобы новые данные отображались в первой форме на главной странице.Я играл с автоматическим обновлением страницы, но это немного противно.

Есть ли способ добавить эти данные формы прямо на мою исходную страницу через jquery?

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

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 23 сентября 2010

Я считаю, что лучше всего использовать функцию load jQuery (http://api.jquery.com/load/). Это позволяет загружать страницу из URL-адреса непосредственно из JavaScript.

Вот что я бы сделал:

  • переместить создание выбора в новый URL-адрес (например, fillselect.php)
  • загрузить страницу без создания select: вместо этого создайте тег div (назовите его divforselect, например)
  • в событии onload javascript на странице, напишите это: $("#divforselect").load("fillselect.php") В результате тег div div innerText будет установлен на содержимое страницы fillselect.php. Таким образом, URL-адрес fillselect.php не будет полной HTML-страницей, а будет содержать только тег select.

После этого вы можете звонить $("#divforselect").load("fillselect.php") всякий раз, когда вы хотите обновить выбор!

1 голос
/ 23 сентября 2010

Я думаю, что вы хотите делать DOM-манипуляции с помощью JS.Все, что вам нужно сделать, это добавить новый тег OPTION со значением пользовательского ввода в SELECT, например:

var option = $('<OPTION/>');
$(option).html('INSERT YOUR VALUE HERE');
$('SELECT').append(option);

Помните: это добавляет OPTION только на стороне клиента.Таким образом, если ваша фактическая отправка формы (в вашем iframe) не сможет отправить данные в вашу базу данных, это будет представлять непоследовательное представление для вашего пользователя (где он будет думать, что новый OPTION создан, но на самом деле он не выполнен).

Таким образом, вам придется связать обновление пользовательского интерфейса с ответом на сервер.Обычно вы обновляете этот интерфейс в ответе AJAX на вызов, обновляющий серверную часть.

0 голосов
/ 23 сентября 2010

Может быть, вы должны использовать AJAX для заполнения полей? Тогда вы можете обновить данные в любое время.

jQuery Ajax

...