2013-08-06 33 views
0

我有這樣的鏈接的列表:如何獲得href值並將其作爲javascript變量?

<li><a href="landing.php?products=IPCamera&id=1">IP Camera 1</a></li> 
<li><a href="landing.php?products=IPCamera&id=2">IP Camera 2</a></li> 
<li><a href="landing.php?products=CCTVCamera&id=1">CCTV 1</a></li> 

和下面的示例PHP代碼:

// PRODUCTS AND ID IS DYNAMICALLY PRODUCE FROM PHP QUERY 
$sql = "SELECT * FROM tablename"; 
$result = mysql_query($sql); // 
foreach($result as $field) { 
    $listlink = "landing.php?products=".$field[products]."&id"=$field[id]; 
    $output = "<li><a href=\"$listlink\">".$field[menuname]."</a></li>"; 
} 
echo $output; // THIS IS THE RESULT OF LIST OF LINK ABOVE 

我的問題是如何使產品和id的值,成爲一個javascript變量,把它傳遞給一個jQuery Ajax來調用一個php處理器。

感謝

回答

0

使用location.search來獲得當前位置的查詢部分,然後提取現場使用。

希望有所幫助。

0

如果你在談論基於URL的productsidproducts.php網頁上運行的代碼:

<script type="text/javascript"> 

var params = {}, queryString = location.search.substring(1), 
    re = /([^&=]+)=([^&]*)/g, m; 

while (m = re.exec(queryString)) { 
    params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
} 

//now params is an object containing all the query string parameters from the URL 
do_your_ajax_thing(params[id], params[products]); 

</script> 
1

您可以使用數據屬性和使用jQuery.data通過jQuery訪問它們( )功能。

$sql = "SELECT * FROM tablename"; 
$result = mysql_query($sql); // 
foreach($result as $field) { 
    $listlink = "landing.php?products=".$field[products]."&id"=$field[id]; 
    $output = "<li><a data-products=\"$field[products]\" data-id=\"$field[id]\" href=\"$listlink\">".$field[menuname]."</a></li>"; 
} 

JS部分會是這樣

$("a").click(function() { 
    var id = $(this).data('id'); 
    var products = $(this).data('products'); 
    var url = $(this).attr('href'); 

    // your ajax request goes here 
}); 
+0

不錯,乾淨,沒有正則表達式所需的這一個。做得好! –

+0

@MészárosLajos謝謝兄弟。 –

+0

非常感謝..它的工作原理.. – Beginer

0

你可以把產品列的所有值在PHP中的行,然後使用json_encode()來發送編碼成JavaScript數組JSON。 只是一個例子如何做到這一點。

<html> 
<head> 
<script type="text/javascript"> 
var productValueArray = <?php 

       $outputArray = array(); 
       $sql = "SELECT * FROM tablename"; 
       $result = mysql_query($sql); // 
       foreach($result as $field) { 
        array_push($outputArray, $field[menuname]); 
       } 
       echo json_encode($outputArray); 

         ?> 

    </script> 
    </head> 
    <body> 
    </body> 
</html> 
0
var urlArgs = location.search, 
    products = urlArgs.substring(urlArgs.indexOf("=") + 1, urlArgs.indexOf("&")), 

和ID也可以使用子()或者split()方法和做字符串操作。

相關問題