0

我的网络应用程序已集成到 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>";      
}
?>

任何帮助将不胜感激。谢谢

4

1 回答 1

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 风格的 URL = 'mycontroller/mymethod/myparam'。

在此示例中,mycontroller 将是您正在调用的类(脚本),mymethod 将是您要在控制器中调用的特定函数,而 myparam 将是您传递给该函数的数据。

于 2013-10-03T09:22:24.517 回答