繁体   English   中英

在Smarty中使用php在同一页面上显示表单结果

[英]Display form result on same page using php with smarty

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

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

我会使用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将是您要传递给该函数的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM