2012-02-07 143 views
0

我有一个JavaScript代码,这使得一个Ajax请求的URL和成功(在成功回调)CakePHP的元素调用CakePHP的元素,像这样:包括阿贾克斯成功

$.ajax({ 
    type: 'POST', 
    url: "the_url_where_the_request_should_go", 
    success: function(data) { 
     "<?php echo $this->element('the_path_to_my_element'); ?>"; 
    } 
}); 

正如你所看到的,因为我使用的是JavaScript代码,所以我必须在我的PHP代码中加上双引号(“”)才能使用。我遇到的问题是,在成功函数中,当我调用我的元素时,双引号会一起发送。也就是说,如果在我的元素文件中的代码,例如:

<div>element_code_here</div> 

我得到:

"<div>element_code_here</div>" (notice the double quotes gets included also) 

有谁知道它为什么这样做,我该如何解决这一问题?

顺便说一句,如果我只是删除在我的PHP变量的双引号,它只是将不会提前

+0

仍然在与这个挣扎吗? – Henri 2012-02-10 06:33:33

回答

0

的成功合作(它给了我一个javascript无效的错​​误消息。

谢谢回调仍然是一个javascript函数,所以你需要把你用PHP回显的元素当作一个字符串来处理,我不是100%确定你想要完成什么,我可能会建议从你的ajax端点返回元素(html)而不是直接插入到脚本中,但使用你的例子,你应该这样做:

$.ajax({ 
    type: 'POST', 
    url: "the_url_where_the_request_should_go", 
    success: function(data) { 
     var html_string = "<?php echo $this->element('the_path_to_my_element'); ?>"; 
     //do something with the html string.. like insert it into a waiting div 
     $('div.container').html(html_string); 
    } 
}); 
+0

不起作用,双引号仍然存在 – user765368 2012-02-08 01:05:57

0

狂猜。试试用类似这样的东西从服务器返回元素:

//Function to call with $.ajax 

function giveElement($elementName){ 

    //logic to do with POST 


    //element to return 
    $this->render('/elements/'.$elementName); 


} 
//NOT TESTED. This might need something else too.