2016-08-15 113 views
0

我收到了一個按價格從低到高排列產品的ajax腳本。這工作時,我沒有動態頁面,但現在數據根據頁面別名(urlname)返回。在變量設置以外的腳本中使用變量(ajax)

所以下面的查詢:

$product = "SELECT * FROM `snm_content` 
      WHERE `catid` = 15 AND state = 1 order by introtext ASC"; 

需要是:

$produc = "SELECT * FROM `snm_content` 
      WHERE `catid` = '".$conn->real_escape_string($productcatcr[0]['id'])."' 
      AND state = 1 order by introtext ASC"; 

但問題是,因爲它是另一頁上使用的其他文件不承認$conn->real_escape_string($productcatcr[0]['id'])

我需要發佈它,然後得到它或什麼?

這裏正確的腳本取決於什麼加載選項中選擇:

<div class="form-group"> 
    <label class="grey" for="orderby">Sorteer op:</label> 
    <select class="form-control orderby" name="orderby" id="orderby"> 
     <option value="default" data-post-url="default.php">Standaard</option> 
     <option value="popularity" data-post-url="populairst.php">Meest bekeken</option> 
     <option value="highlow" data-post-url="prijshooglaag.php">Prijs: Hoog naar laag</option> 
     <option value="lowhigh" data-post-url="prijslaaghoog.php">Prijs: Laag naar hoog</option> 
    </select> 
</div> 

阿賈克斯:

$("#orderby").on('change', function() { 

    var option = $('#orderby > option').filter(':selected'); 

    $.post("ajax/" + option.data("post-url"), { 
     filter: option.val() 
    }, function(result){ 
     $("#productviewajax").html(result); 
    }); 

}); 

prijslaaghoog.php就是$ productcatcr [0] [ '身份證']必須認可。

$pid = $productcatcr[0]['id']; 

<option value="lowhigh" data-post-url="prijslaaghoog.php?id='.$pid.'">Prijs: Laag naar hoog</option> 

然後在我查詢:

+0

請告訴我$ productcactr? –

+0

@Jonasw腳本需要加載的頁面的ID。 – twan

+0

您需要重構。我不能看到你的代碼庫,但它接到你發送ajax請求到不同的端點取決於下拉菜單。我在這4個php文件中對代碼進行映像幾乎完全一樣,只是與sql不同的順序。將請求發送到一個端點並且在發佈數據中傳遞排序參數和頁面參數會更有意義。 – Steve

回答

0

我通過此網址像這樣發佈的變量固定它

$product = "SELECT * FROM `web_content` WHERE `catid` = '".$_GET['id']."' AND state = 1 order by introtext ASC"; 
+0

在這裏使用綁定變量,以避免sql注入 –