Mat*_*eno 8 php ajax jquery zend-framework
我正面临一个问题,我想知道是否有人可以指出我正确的方向.
我在我的控制器中使用Zend的FlashMessenger,但在我的一个文件中,我通过AJAX帖子处理我的表单.在这种情况下,我认为Humane-flatty将是Zend FlashMessenger的一个很好的替代品,但它的布局完全不同.
有没有办法在我的AJAX帖子中触发Zend Flashmessenger?
这就是我目前在控制器中调用Zend FlashMessenger的方式:
$this->_helper->FlashMessenger(array('success' => 'Succesfully added'));
Run Code Online (Sandbox Code Playgroud)
这是我的jQuery:
if (data.weight !== '' && data.customer != '') {
$.ajax({
type: 'POST',
url: '/index/line',
data: data,
success: function(res) {
$('#open_orders').append(res);
flashSucces.log('Orderline succesfully added.');
//Can I call Zend flashmessenger from here?
}
});
}
Run Code Online (Sandbox Code Playgroud)
我假设以下index.phtml 文件作为indexController 文件的视图脚本,用于打印表单并执行Ajax。当您单击“获取外部内容”按钮时,/index/line 控制器的 Ajax 响应结果将填充到 div1 标记中。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax({url: '/index/line',
success: function(res){
$("#div1").html(res);
//your FlashMessenger will execute from here with AJAX success.
}
});
});
});
</script>
</head>
<body>
<?php // print your form from controller here. echo $this->form; ?>
<div id="div1">Let jQuery AJAX Change This Text</div>
<button>Get External Content</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
上面的代码将从indexController('/index/line')处的lineAction获取结果。在 IndexController.php 添加以下行
public function lineAction()
{
$this->_helper->FlashMessenger('Succesfully added');
if ($this->_helper->FlashMessenger->hasMessages())
{$this->view->messages = $this->_helper->FlashMessenger->getMessages();}
}
Run Code Online (Sandbox Code Playgroud)
现在调用线路操作的视图脚本 (line.phtml)。在 line.phtml 中添加以下行
<?php
if ($this->messages!=Null)
{ $messages = $this->messages;
foreach($messages as $message) {
echo '<script> alert("'.$message.'") </script>';
}
}
Run Code Online (Sandbox Code Playgroud)
现在执行您的代码。您的 Ajax 将成功执行 Zend FlashMessenger 并显示 JavaScript 警报消息“已成功添加”。
我已经测试了上面的代码,它与 Zend 1.12 配合得很好。