2016-12-01 57 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