James Allan James Allan - 1 month ago 11
jQuery Question

Combining two dropdown selection to retrive one result ajax/php

I got two dropdowns and i need to get both values to get data from my database.

$(document).ready(function(){

$('.fabric').on('change',function(){
var fabricID = $(this).val();
console.log("fabric id_price is " + fabricID); //debugging
if(fabricID){
$.ajax({
type:'GET',
url:'cart_functions.php',
dataType: 'json',
data: {
fabric_id: fabricID
},
success:function(html){
$('.icms' + id).text(data.val);


}
});
//closing tags


$('.size').on('change',function(){
var sizeID = $(this).val();
if(sizeID){
$.ajax({
type:'GET',
url:'cart_functions.php',
dataType: 'json',
data:{
size_id: sizeID
},
success:function(html){
$('.icms' + id).text(data.val);
}
});

//closing tags


i'm sending these both values to my calculate.php

<?php header('Content-Type: application/json');

include_once '../incluedes/conn_cms.php';
if(isset($_GET["size_id"],$_GET["fabric_id"])){
$size_id=$_GET["size_id"] ;
$fabric_id=$_GET["fabric_id"] ;

$query3 =" SELECT * FROM valores_almofadas
WHERE size='$size_id'
AND price_id ='$fabric_id'";

$result = mysqli_query($conn,$query3);
while($rows = mysqli_fetch_assoc($result)){

if($_SESSION['estado'] == 'SP'){
$ICMS = $rows['icms_7'];
}else{
$ICMS = $rows['icms_12'];
}
$_SESSION['icms']=$ICMS;

} echo json_encode($_SESSION['icms']);

}

?>


So i select a fabric and then a size fabric value is my id and size is 50 or 45.

fabricid= 1 and size = 50 <-- i am sending this to my calculate.php
So i want to get back the value into a session.
and the result must be on a td..

<td class="icms'.$id.'">R$:'.$_SESSION['icms'] .'</td>


But its not working, i'm not good at ajax, can you tell me whats wrong and how can i fix these mess?

Answer

Make sure both values are always sent with the request

$(document).ready(function() {
    $('.fabric, .size').on('change', sendData);

    function sendData() {
        var fabricID = $('.fabric').val();
        var sizeID   = $('.size').val();

        if ( fabricID !== "" && sizeID !== "") {
            $.ajax({
                type     : 'GET',
                url      : 'cart_functions.php',
                dataType : 'json',
                data     : {
                    fabric_id: fabricID,
                    size_id: sizeID
                }
            }).done(function(html) {
                $('.icms' + this.id).text(data.val);
            });
        }
    }
});
Comments