2016-08-17 2 views
0

У меня есть функция, которая отображает количество продуктов в зависимости от значения, выбранного в выпадающем списке. Это делается с помощью ajax, но для того, чтобы все работало правильно, мне нужно передать переменную.Проводка переменной в сценарий ajax

На моем catalog.php я получил:

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

который содержит идентификатор страницы.

На той же странице я получил DropDownList:

<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'].""; 

Мне нужно отправить id с начальной страницы, через ajax в запрос. Какой был бы лучший способ сделать это? Мой аякс не очень хорош.

У меня есть другой фильтр на начальной странице, на котором я могу просто передать переменную в URL-адресе, но другой элемент опции не работает так.

Пример:

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

Откуда: $ _GET ['id'] 'у вас? –

+0

@NanaPartykar Нигде, вот почему я спрашиваю, как получить его там. – twan

ответ

1

Создать один hidden input с именем класса, как PageId (не обязательно с тем же именем класса, но если вы изменяете имя класса здесь Изменение Ajax кода id:$(".pageId").val() здесь тоже Оба.. связаны между собой.)

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 для получения идентификатора текущей страницы. И передайте его 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'] в качестве $.post используется в AJAX.

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

Скрытый ввод внутри элемента select? Будет ли она автоматически отправляться, если я выберу значение? – twan

+0

Не внутри 'select'. Используйте перед тем, чтобы выбрать раскрывающийся список. @twan. Некоторые, где на этой странице либо ниже, выберите раскрывающийся список или выше. –

+0

@twan: см. Мой обновленный ответ. Не пропустите ни одной вещи здесь. Ты достигнешь успеха. –

Смежные вопросы