将变量发布到ajax脚本

时间:2016-08-17 08:16:47

标签: php jquery ajax

我有一个功能,根据下拉列表中选择的值显示一定数量的产品。这是通过ajax完成的,但是为了使一切正常工作,我需要传递一个变量。

catalog.php 上,我得到了:

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

其中包含页面ID。

在同一页面上,我收到了下拉列表:

<select class="form-control showcount" name="showcount" id="showcount">
    <option value="100" selected>Alle</option>
    <option value="2">2</option>
    <option value="4">4</option>
    <option value="8">8</option>
    <option value="12">12</option>
    <option value="16">16</option>
    <option value="20">20</option>
</select>

ajax.js

中的效果如下
$("#showcount").on('change', function() {

    $.post("ajax/getproducts.php", {start: ($("#showcount").val() - 4), end: $("#showcount").val()}, function(result){
        $("#productviewajax").html(result);
    });
});

最后在 getproducts.php 中,我使用以下查询:

$product = "SELECT * FROM `web_content` WHERE `catid` = ".$conn->real_escape_string($_GET['id'])." AND state = 1 order by ordering LIMIT ".$_POST['end']."";

我需要从初始页面,通过ajax到查询发布id。最好的方法是什么?我的ajax不是很好。

我在初始页面上有另一个过滤器,我可以在其中传递一个url中的变量,但是另一个选项元素不能像那样工作。

示例:

<option value="highlow" data-post-url="prijshooglaag.php?id='.$pid.'">Prijs: Hoog naar laag</option>

1 个答案:

答案 0 :(得分:1)

使用类名称创建一个hidden input作为pageId(不是必须使用相同的类名,但是如果您在此处更改类名。请在此处更改Ajax代码id:$(".pageId").val()。两者都是相关的。)< / p>

<强> catalog.php

<?php

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

<input type='hidden' value='<?php echo $pid;?>' class='pageId'>

<select class="form-control showcount" name="showcount" id="showcount">
  <option value="100" selected>Alle</option>
  <option value="2">2</option>
  <option value="4">4</option>
  <option value="8">8</option>
  <option value="12">12</option>
  <option value="16">16</option>
  <option value="20">20</option>
</select>

使用pageId获取当前页面ID。并将其传递给 getproducts.php 页面。

<强>的Ajax

$("#showcount").on('change', function() {
    $.post("ajax/getproducts.php", {start: ($("#showcount").val() - 4), end: $("#showcount").val(),id:$(".pageId").val()}, function(result){
        $("#productviewajax").html(result);
    });
});

getproducts.php

而不是$_GET['id']使用$_POST['id']作为AJAX中使用的$.post

$product = "SELECT * FROM `web_content` WHERE `catid` = ".$conn->real_escape_string($_POST['id'])." AND state = 1 order by ordering LIMIT ".$_POST['end']."";