2016-12-01 58 views
0

我想用javascript获取元素的属性。所以我使用下面的代码:在php代码中替换js变量

var url = jQuery(this).find('a').attr('url'); 

我得到正确的值。之后,我想用这个url来调用带有ajax的文件。问题是我需要使用PHP来调用url,但我不能在php代码中使用js变量。我想做类似以下的事情,但当然,这是行不通的。这里是我想要的想法:

jQuery.ajax({ 
    url: "<?php echo Mage::getUrl(?>"+url+"<?php);?>", 
    async: false, 
    success: function(data) { 
     jQuery(id).html(data); 
    } 
}); 

有什么想法吗?

+0

首先,您不能使用javascript更改php变量,请记住,当php是服务器端时,javacript是客户端。 – Muya

+0

@ muyamwangi我知道,这就是为什么我正在寻找替代品或解决方案来解决我的问题 – Erlaunis

+0

您想要调用的PHP脚本在哪里?如果他们在相同的路径只是通过url变量 – Muya

回答

1

PHP是服务器端,JavaScript是客户端。你不能用javascript来改变你的PHP代码。我建议将javascript变量作为POST数据传递给您的AJAX调用并从那里重定向。

例如:

jQuery.ajax({ 
    url: "static_url", 
    async: false, 
    data: {url: url}, 
    success: function(data) { 
     jQuery(id).html(data); 
    } 
}); 

在 “static_url” 页面,你可以做一个卷曲的请求到该URL做

<?php 
    $url = Mage::getUrl($_POST['url']); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch); 

    echo $output; 
?> 
+1

我会考虑你的解决方案,谢谢! – Erlaunis

0

你不能用PHP访问javacsript变量。 PHP运行在服务器端,JavaScript在客户端。你需要尝试这样的事情。

var url = '<?php echo $base_url; ?>/'+url; 
+0

我不能因为该网址是在一个PHP函数中:/ – Erlaunis

+0

你没有任何PHP函数返回atleast'baseurl'吗?你在用什么?任何PHP框架? – Tiger

0

我想这是你想要达到

jQuery.ajax({ 
 
    url: url, 
 
    async: false, 
 
    success: function(data) { 
 
     jQuery(id).html(data); 
 
    } 
 
});

只是通过url变量,如果这是通向你的PHP脚本什么。

+0

不,因为我需要php的功能,不仅网址 – Erlaunis

+0

我可以编辑我的答案,如果你告诉我php脚本所在的位置 – Muya