Мое веб-приложение интегрировано в facebook. Я создал форму в tpl файле, имея только один вход, который выбирает вход. Пользователь должен выбрать одну из своих групп facebook. value
опции - id
каждой группы.
Так вот что я хотел бы сделать:
Когда пользователь меняет параметр (onchange
), список членов выбранной группы будет отображаться ниже, select
div
. Я не знаю, что я должен использовать (javascript, jquery, ajax и т.д.) И как реализовать его в моем коде.
Вот мой фрагмент кода:
{* --- form in tpl file --- *}
<form method="post">
<fieldset>
<div class="row">
<p style="font-weight:bold;">Choose your facebook group :</p>
</div>
<div class="row">
<select name="group" onchange="idontknow">
{foreach from=$userGroupsData item=group}
<option value="{$group.id}">{$group.name}</option>
{/foreach}
</select>
</div>
<div class="row">
{* the place where members list will appear *}
</div>
</fieldset>
</form>
PHP-код для извлечения списка участников выбранной группы (если я использую метод отправки):
<?php
$groupId = $_POST['group'];
$groupmember = $facebook->api('/'.$groupId.'/members');
$membergroup = $groupmember['data'];
foreach ($membergroup as $membergroups) {
echo "<li>".$membergroups['name']."</li>";
}
?>
Любая помощь будет принята с благодарностью. спасибо
Я бы сделал запрос Ajax с помощью jQuery:
$(function() {
$('body').on('change', 'select[name="group"]', function() {
var groupId = $(this).val();
$.post('path/to/your/script', groupId)
.done(function(data) {
$('form .row').html(data);
});
});
});
Если бы это был я, я бы использовал back-back данные JSON вместо HTML, и я бы динамически построил HTML-код в обратном вызове Ajax.
Кроме того, этот сценарий является одной из многих причин, по которым я предпочитаю использовать архитектуру MVC на сервере. Если вы использовали инфраструктуру MVC, например, например CodeIgniter, URL-адрес, по которому вы отправляете данные, будет заботиться о маршрутизации следующим образом:
URL-адрес в стиле MVC= 'mycontroller/mymethod/myparam'.
В этом примере mycontroller будет классом (сценарием), который вы вызываете, mymethod будет конкретной функцией, которую вы хотите вызвать в контроллере, а myparam - это данные, которые вы передаете этой функции.