我的网络应用已整合到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代码(如果我使用submit方法):
<?php
$groupId = $_POST['group'];
$groupmember = $facebook->api('/'.$groupId.'/members');
$membergroup = $groupmember['data'];
foreach ($membergroup as $membergroups) {
echo "<li>".$membergroups['name']."</li>";
}
?>
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
我会使用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架构的众多原因之一。例如,如果您正在使用像CodeIgniter这样的MVC框架,那么您要发布数据的URL将像这样处理路由:
MVC风格的网址 ='mycontroller / mymethod / myparam'。
在这个例子中,mycontroller将是你正在调用的类(脚本),mymethod将是你想在控制器中调用的特定函数,myparam将是你传递给该函数的数据。