[英]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.