jquery - Combining two dropdown selection to retrive one result ajax/php

196

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?

453

Answer

Solution:

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);
            });
        }
    }
});
667

Answer

Solution:

You are never sending both values in any ajax call, only one or the other. You need to additionally get the value forfabric_id in your.size change event and vice versa.

People are also looking for solutions to the problem: php - How to trace for ldap bind function to identify th eissue

Source

Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.