xajax 问题
clzdl 2008-08-04 05:48:24 这是用Smarty 和xajax写的,经过多次试验得知 refreshContent()函数未能执行,但找了很长时间没找到错出在呢,希望大家帮忙看看,先谢谢了!
<?php
require_once( 'Config/Config.inc.php');
require_once('xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
function loadContent($n){
global $Smarty;
if($n==0){
$data[] = array('title' =>'helloworld','content' =>'<p>what is going on?</p>');
$data[] = array('title' =>'another item','content' => '<p>nothing fancy</p>');
}
else if($n == 1){
echo '=============';
$data[] = array('title' =>'Dynamically loaded' , 'content' => '<p>There you go</p>');
}
$Smarty ->assign('posts' ,$data);
$ret = $Smarty ->fetch('post.html');
$Smarty ->clear_all_assign();
return $ret;
}
function refreshContent($formValues){// 问题此函数不能执行
$response= new xajaxResponse();
$newContent = loadContent($formValues['select_page']);
$response ->addAssign('content','innerHTML',$newContent);
return $response;
}
$xajax ->registerFunction('refreshContent');
$xajax->processRequest();
$Smarty ->assign('content',loadContent(0));
$Smarty ->assign('xajaxjavascript',$xajax ->getJavascript('xajax/'));
$Smarty ->display('main.html');
?>
post.html
<html>
<body>
<%{foreach from = $posts item = post}%>
<div>
<h2><%{$post.title}%></h2>
<%{$post.content}%>
</div>
<%{/foreach }%>
</body>
</html>
main.html
<html>
<head>
<%{$xajaxjavascript}%>
</head>
<body>
<div id="header">
<h1>Smarty $amp;xajax</h1>
</div>
<form id="frm_switcher" method="POST" >
更换内容
<select name="select_page" onchange="xajax_refreshContent(xajax.getFormValues('frm_switcher'));">
<option value="0" selected='selected'>页面索引 0</option>
<option value="1" > 页面索引 1</option>
</select>
</form>
<div id ="content">
<%{$content}%>
</div>
</body>
</html>