我是zend框架和ajax的初学者 我尝试用ajax和zend做一个简单的代码, 当按下按钮时,它包含div,text和button,文本的值被填充到div中 但是当我按下按钮时没有发生任何事情 :S 这是我的代码,请帮帮我
这是布局
/index/test.phtml
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<!--for display text and submit fields i use viewHelpers it's very comfortable and easy way.-->
<div class="submit_area">
<?php echo $this->formText('message', 'empty', array('size' => 32, 'id' => 'message')) ?>
<?php echo $this->formSubmit('submitTo', 'submit', array('id' => 'submitTo')) ?>
<div class="show-msg"></div>
</div>
<script >
//for send data i'll use jquery library
$(document).ready( function() {
<?php echo "ready" ?>
//By clicking on button submit condition makes validate on empty message
//unless field message will be not empty , the programm make send data to
//controller via ajax
$("#submitTo").click(function() {
var message = $('#message').val();
if (message != '') {
//run ajax
$.post('index/ajax', {'message' : message},
//callback function
function (respond) {
//put respond in class show-msg
$(".show-msg").html(respond);
}
);
}
});
});
</script>
class IndexController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function checkAction()
{
// action body
$request = $this->getRequest()->getPost();
//referring to the index
//gets value from ajax request
$message = $request['message'];
// makes disable renderer
$this->_helper->viewRenderer->setNoRender();
//makes disable layout
$this->_helper->getHelper('layout')->disableLayout();
//return callback message to the function javascript
echo $message;
}
public function testAction()
{
// action body
}
}
答案 0 :(得分:1)
您收到任何错误吗?
我可以在代码中看到一些可能有误的内容。
click()
事件不是return false
,因此可能会在Ajax调用发生之前提交您的表单。
Ajax网址指向/index/ajax
,这意味着IndexController
应该有ajaxAction
。您应该将post()
请求指向/index/check
。
您可能还想查看ContextSwitch and AjaxContext
确实@Boulevard所说的也是正确的,echo
打破了你的JS。
答案 1 :(得分:0)
您的javascript语法代码错误。 尝试删除此行:
<?php echo "ready" ?>
添加javascript关闭代码:
</script>