Zend和jQuery $ .ajax()回调不起作用

时间:2013-05-09 13:51:22

标签: ajax zend-framework callback

Zend和jQuery $ .ajax()回调无法正常工作

我可以让我的$ .ajax()在网页上工作,带有输入框,用php程序填充查询, 但我无法使用相同的函数,使用有效的Zend操作(使用类似Zend的url或使用 fqdn url)

服务器端

Zend中的

$。ajax()

我确实有一项行动,因为访问了以下网址



    http://my_site/my_controller/my_action/some_id/some_number

我得到一个带有json编码记录的网页,因为在my_action中我调用了一个查询,如下所示......


$this->_helper->layout->disableLayout();  //disable "Zend automatic behavior"
$this->_helper->viewRenderer->setNoRender();

$my_resulting_row = $my_model->my_query( $this->_getParam('some_id') );
$my_json = Zend_Json::encode($my_resulting_row);
echo $my_json;

正如预期的那样,探测查询正在运行,并且编码正在运行

客户端

我还有一个几乎正常工作的javascript函数,如下所示

function my_work( any_id ) {
    // alert(any_id);    // working OK
  $( function() {
   // window.opener.document.getElementsByTagName('input')[0].value = any_id; // ok

//现在问题: //我的javascript中的下一行是$ .ajax()的调用,目的是为了 1)使用以json格式打包的代码“any_id”向数据库调用查询 2)接收获得的数据 3)解码数据,然后将数据写入呼叫页面上的每个输入框

$.ajax({ type:'GET',   // which is the default, no need to put it here
         url:'/my_controller/my_action/any_id',   // action (showed above)
        data:any_id,        // just in case ... not working either way
    dataType:'json',        // supposed to "unpack" the data
  beforeSend: function(){ alert('here ok'); }, //this is OK 
     success:function( rows )  {    // not even an alert opens here
     for( var i in rows ) {
       var row = rows[i];
         // statements to put data in a web page
         window.opener.document.getElementById('ia3').value=row[5];
         // not even an alert works here (mean within success parameter)
        }//for loop
       },
     error:function(){ alert('error'); },  // not working
    complete: ... is not popping up an alert()...

以上功能实际上是有效的,但是在其他地方的一个单独的实验页面中进行了测试(意味着不在Zend中) 我甚至尝试过window.opener.document.getElementById('ia3')。value = row [5];这在Zend框架之外也有效。 我在我的控制器中添加了一个init()来声明AjaxContext,如一些例子中所示。并将视图文件后缀更改为ajax.phtml,但如果我更改后缀(我使用javascript或url()调用控制器/操作,Zend没有看到这样的文件,所以我改回原来是的。

简而言之: 我可以在带有输入框的网页上进行$ .ajax()回调工作 使用来自单独的php文件的查询, 但我无法使用与$ .ajax()回调相同的javascript函数,使用Zend操作(正如我所说,我知道IS工作正常。)

任何可能解决这个问题的线索?

谢谢!

0 个答案:

没有答案