在PHP代码中替换js变量

时间:2016-12-01 12:55:12

标签: javascript php ajax

我想用javascript获取元素的属性。所以我使用以下代码:

 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);
    }
}); 

请问好吗?

3 个答案:

答案 0 :(得分: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”页面,你可以通过

对该网址发出cURL请求
<?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 :(得分:0)

您无法使用php访问javacsript变量。 PHP正在运行服务器端,javascript在客户端。你需要尝试这样的事情。

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

答案 2 :(得分:0)

我想这就是你想要实现的目标

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

如果这是你的php脚本的路径,只需传递url变量。