0

I have two dropdowns where ajax gets the value from it and send to my page calculates.php and then i will get a result based on both dropdown selection. But its not working well. The problem is that im getting a error that is saying

Notice: Undefined index: icms in C:\xampp\htdocs\system\clientes\gallery\cart.php on line 159

Notice: Undefined index: icms in C:\xampp\htdocs\system\clientes\gallery\cart.php on line 160

icms is a variable that holds the $_SESSION['icms']. When i get the result i must store in session and get data from data base. I dont know why i am getting this. And my values are not returning.

my script

$(document).ready(function(e){
  e.preventDefault();
    $('.fabric').on('change',function(e){
        var fabricID = $(this).val();
        console.log("fabric id_price is " + fabricID); //debugging
        if(fabricID){
           $.ajax({
                type:'GET',
                url:'calculates.php',
                data:'id_price='+fabricID,
                success:function(html){                                                          

                  // do nothing cuz i just need to combine with script bellow 
               //some closing tags

    $('.size').on('change',function(e){
      e.preventDefault();
        var sizeID = $(this).val();
        if(sizeID){
            $.ajax({
                type:'GET',
                url:'calculates.php',
                dataType: 'json',
                data:'size_id='+sizeID,

                success:function(html){
                  $(".icms" + id).text(data.val);
              //some closing tags

this is where i get my dropdown data and search database... calculates.php

// this is calculates.php
header('Content-Type: application/json');
include_once '../incluedes/conn_cms.php'; 

if(isset($_GET["size_id"],$_GET["id_price"])){
    $the_size=$_GET["size_id"] ;
    $the_id_price=$_GET["id_price"] ;

 $query3 = "SELECT * FROM valores_almofadas 
            WHERE size='$the_size' 
            AND   price_id ='$the_id_price'";
  $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 $_SESSION['icms'];

}

and here where i am supouse to receive data from the result. this below is my cart.php script

$value holds quantity and the $id holds the product row id.

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

160 <td class="total'.$id.'">'.$value * $_SESSION['icms'] .' </td>

2
Contributors
5
Replies
41
Views
1 Year
Discussion Span
Last Post by ryantroop
0

well... if you are using sessions, where is your session start? It should always be before headers are set. Other than that, you are simply replacing the one time super-global $_SESSION and inline declaring it an assoc array.

Other than that, it doesn't look like anything else is out of the ordinary :-/ This does look like a snippet from a bigger page structure, though.. :-/

Are you sure you are getting data from the database? What happens if you do a var_dump($_SESSION) and var_dump($rows) ?

0

i used in calculation.php and didnt get no data from the var_dump because the values must be set, so i thing the problem is my jquery/ajax.
But i not good with ajax,dont know what i am missing.

0

have you tried var_dump ($_GET)?

Also, it seems you are only sending id_price, but your isset() looks for id_price and size_id, which means you need to add that along with id_price...

data:'id_price='+fabricID + '&size_id='+sizeID, //or something like this...

In the future, you may want to consider having your HTML/GET/POST variable names be the same as the column names, as this will prevent confusion as to what you are sending and expecting. id_price='fabricID' seems awfully odd.. why not just 'fabricID=' + fabricID?

Edited by ryantroop

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.