我有以下HTML代码
<div id="form_target"></div>
<form action="?r=index/login" target="#form_target"></form>
我想从actionLogin返回文本并在form_target中显示它。怎么做?
我试过了
$this->renderText($Respond);
但仍然失败。在浏览器上,我得到了一个显示返回文本的新屏幕。我想要form_target中的文本。
谢谢。
答案 0 :(得分:0)
将$this->renderText($Respond)
替换为echo $Respond
。来自renderText()
的{{3}}
呈现静态文本字符串。该字符串将插入当前控制器布局并返回。
答案 1 :(得分:0)
我替换了&lt; form&gt;标记为&lt; div&gt;标签。所以我提交的表单条目没有&lt; form&gt;标签。 我使用ajax post请求提交值。
我无法解释为什么即使我使用标签,页面也会在从控制器获取结果时保持刷新。
所以修改后的html代码是这样的:
<div id="form_target"></div>
<div id="form">
<input .../>
<input .../>
<input .../>
<input type="button" value="submit" onclick="SubmitForm();"/>
</div>
和SubmitForm()看起来像这样
SubmitForm()
{
var data = $("#form *:input").serialize();
$.post(
url,
data,
function(data)
{
$("#form_target").html(data['respond_text']);
},
'json'
);
}