我的网络应用程序已集成到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>";
}
?>
任何帮助将不胜感激。谢谢
我会使用 jQuery 发出一个 Ajax 请求:
$(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);
});
});
});
如果是我,我会让后端返回 JSON 数据而不是 HTML,我会在 Ajax 回调中动态构建 HTML。
此外,这种情况是我更喜欢在后端使用 MVC 体系结构的众多原因之一。如果您使用的是 MVC 框架,例如 CodeIgniter,则您发布数据的 URL 将像这样处理路由:
MVC 样式的 URL = 'mycontroller/mymethod/myparam'。
在此示例中,mycontroller 是您正在调用的类(脚本),mymethod 是您要在控制器中调用的特定函数,myparam 是您传递给该函数的数据。