2010-12-31 3 views
0

Я новичок в JQuery, и я пытаюсь осуществить это:JQuery Добавить/Удалить с содержанием Dynamic PHP

В моей PHP страницы, я хотел бы сделать что-то вроде Add/кнопки/значок Удалить (пожалуйста, проверьте : http://muiomuio.com/tutorials/jquery/add-remove/http://muiomuio.com/web-design/add-remove-items-with-jquery), и когда щелчок будет нажат, я хотел бы показать новый набор полей (в частности, выпадающие меню). В примере, который я показываю выше, он имеет только 1 текстовое поле.

Однако это не нормальные поля, я хочу, чтобы они были заполнены значениями из базы данных, а некоторые из них должны быть интерактивными. Другими словами, AJAX включен. Поэтому на моей странице PHP я хотел бы сделать запрос для обработки этих интерактивных частей.

Чтобы быть более конкретным, назовем этот «новый» элемент строкой. Строка содержит:

служба: меню выпадающего (статический, нет необходимости делать вызов к базе данных каждый раз, когда создаются новая строка элемента)

Store: меню выпадающего (dynamic- Аякса, он будет проверять выпадающее меню сервиса, и на основе его стоимости, он будет идти выборку из базы данных магазинов, которые предоставляют эту услугу)

Статус: меню выпадающего (статического, не нужно делать вызов в базу данных каждый раз, когда создается новая строка элемента)

Теперь из этой простой демонстрации я знаю, как сделать функцию добавления/удаления, но я не знаю, как сделать вызов базы данных, чтобы получить значения выпадающего меню. Кроме того, я не знаю, как сделать динамический список «Store», который принимает значение меню «Сервис» строки.

Итак, если у нас есть 10 строк, каждый из них имеет свою службу и меняет службу в строке1, не должен влиять ни на что, кроме значений списка магазинов row1 .. и т. Д. Поэтому они представляют собой отдельные строки.

Пожалуйста, помогите, как настроить таргетинг. Благодаря!

ответ

1

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

<select id="service-1">.....</select> 
<select id="store-1">......</select> 
<select id="status-1">.....</select> 

<select id="service-2">.....</select> 
<select id="store-2">......</select> 
<select id="status-2">.....</select> 

Теперь на JavaScript. В основном вам нужно сказать jQuery, что когда событие onChange происходит для окна выбора службы, оно должно выяснить свой идентификатор, запросить данные с сервера и заменить содержимое в элементе с сохраненным идентификатором + идентификатором, который вы только что использовали.

$('select[id^="service-"]').change(function(){ 
    var id = $(this).attr('id'); 
    id = id.replace('service-', ''); 

    var someValue = $(this).val(); 

    $.get('/fetch/content/from/this/url?param='+someValue, function(data){ 
     $('#store-' + id).html(data); // that would be if your script returns HTML. 
             // You can easily alter the functionality to 
             // rebuild the dropdown menu from JSON object 
             // or something like that 
    });        
}); 

И это в основном это.:)

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

0

Насколько я не рекомендую рекомендовать это, ваш лучший выбор может быть предварительно заполненными полями. Создайте выпадающие меню с помощью PHP, а затем скройте их с помощью jQuery. Если их не так уж много, не должно быть огромного успеха.

Если я не понял ваш вопрос, я думаю, что это было бы самым простым решением.

+0

Звучит неплохо для меня. Позвольте мне попытаться понять, хорошо ли для меня все хорошо. знак равно – johnshaddad

0

Не лучше ли хранить значения на СЕССИИ? А затем, создав новое поле, вы просто призовете переменную СЕССИИ? У вас будет только один вызов в db и все ваши данные в памяти ...

Смежные вопросы