Javascript 使用php和smarty在同一页面上显示表单结果

Javascript 使用php和smarty在同一页面上显示表单结果,javascript,php,jquery,forms,smarty,Javascript,Php,Jquery,Forms,Smarty,我的web应用程序已集成到facebook。我在tpl文件中创建了一个表单,其中只有一个输入,即select input。用户必须选择一个facebook群组。该选项的值是每个组的id 这就是我想做的: 当用户更改onchange选项时,select div下面将显示所选组的成员列表。我不知道应该使用javascript、jquery、ajax等什么,以及如何在代码中实现它 下面是我的代码片段: {* --- form in tpl file --- *} <form method

我的web应用程序已集成到facebook。我在tpl文件中创建了一个表单,其中只有一个输入,即select input。用户必须选择一个facebook群组。该选项的值是每个组的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>
使用submit方法检索所选组成员列表的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是您正在传递给该函数的数据