2016-10-07 6 views
1

enter image description hereAJAX選択ドロップダウンからデータを取得し、与える結果PHPは

私は両方のドロップダウンから2つのデータを取得する必要があります。 最初のドロップダウンでfabricIDが取得され、2番目のドロップダウンでsizeIDが取得されます。 そしてAjaxは私が1 $(document).ready(function(){...

$(document).ready(function(){ 

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

       success:function(html){               
        //closing tags 
        //dont need nothing here because i need 
        //just to get the value from both together 

    }); 

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

       success:function(html){ 
        $('.icms').html(html); // i need to get result here 
        based on the result from calculates.php 
       //closing tags 

の内側に各ドロップダウンデータを取得するために二つの機能を使用

をcalculates.phpする選択したデータを送信しますが、この権利ですか? 正しい方法でjQueryスクリプトをビルドしましたか?

これは機能しないためです。私のテーブルに ルック: 表:almofadsは私のファブリック名 enter image description here

を格納する場所であり、私は、ドロップダウン・ファブリックからid_priceを取得し、 テーブルにid_priceを送信します:price_idは等しくなければならないvalores_almofadas最初のテーブル。

enter image description here

私はfabricIDとsizeIDを選択した場合ので、私はここから結果を取得します...ので、結果は$_SESSION['icms']にcart.phpにここに表示されます

<?php header('Content-Type: application/json'); 
include_once '../incluedes/conn_cms.php'; //session started here 

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


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

} 
?> 

をcalculates.php

function cart(){ 
    global $conn; 

    $fabric_options = '<option>Select fabric</option>'; 
    $query2 = "SELECT * FROM almofadas"; 
    $result = mysqli_query($conn,$query2); 
    while($rows = mysqli_fetch_assoc($result)){ 
    $tecido=$rows['tecido']; 
    $id_price=$rows['id_price']; 
    //sizes for size dropdown 
    $t50='50'; 
    $t45='45'; 
    $fabric_options .= '<option value="'.$id_price.'">'.$tecido.'</option>'; 
    } 

foreach ($_SESSION as $name => $value) { 
    if($value > 0){ 
    if(substr($name, 0, 8) == "product_"){ 
    $length = strlen($name) -8; 
    $item_id = substr($name,8 , $length); 
    $query = "SELECT * 
       FROM gallery2 
       WHERE gallery2.id =".escape_string($item_id). ""; 
       $run_item = mysqli_query($conn,$query); 
    while($rows = mysqli_fetch_assoc($run_item)){ 
    $vari = $rows['variante']; 
    $num = $rows['title']; 
    $id  = $rows['id']; 

$btn_add ='<button type="button" class="btn btn-success actions plus" data-action="plus" product_id="'.$id.'"><i class="fa fa-plus fa-lg" aria-hidden="true" add_btn></i></button>'; 

$btn_remove ='<button type="button" class="btn btn-warning actions less" data-action="remove" product_id="'.$id.'"><i class="fa fa-minus fa-lg" aria-hidden="true" remove_btn></i></button>'; 

$btn_delete ='<button type="button" class="btn btn-default actions" data-action="delete" product_id="'.$id.'" onclick="deleteRow(this)"><i class="fa fa-times fa-lg" aria-hidden="true"></i></button>'; 
    if($rows['variante'] < 1){ 
    $vari=""; 
    }else{ 
    $vari = "-".$rows['variante']; 
    } 

    $product = ' 
    <tr> 
     <td style="width:100px; "><img src="../'.$rows['image'].'" style="width:90%;border: 1px solid black;"></td> 
     <td>'.$num.''.$vari.'</td> 
     <td style="width:15%;"> 
      <select name="fabric" class="fabric select form-control selectpicker" required="" > 
     '. $fabric_options . ' 
      </select> 
     </td> 
     <td> 
      <select id="" class="select size form-control selectpicker" required style="width:80%;" > 
      <option value="'.$t50.'">50x'.$t50.'</option> 
      <option value="'.$t45.'">45x'.$t45.'</option> 
      </select> 
     </td> 
     <td class="product'.$id.'">'.$value.'</td>//quantity of the product 
     <td class="icms'.$id.'">R$:'.$_SESSION['icms'] .'</td> // cost of product 
     <td class="total'.$id.'">'.$value * $_SESSION['icms'] .' </td> total of product (sub.total) 
     <td> 
     '.$btn_add.' '.$btn_remove.' '.$btn_delete.'//buttons 
     </td> 
    </tr>'; 
      echo $product; 

     } 
     } 
    } 
    } 
} 

とcart_functions.php

の最後の私のボタンの機能について
header('Content-Type: application/json'); 
session_start(); 

if (isset($_GET['action'])) { 
    $action = $_GET['action']; 
    $prod = $_GET['prod_id']; 
    $prodname = 'product_'.$prod; 
    $result; 

    switch ($action) { 
    case 'add': 
     $result = add_prod($prod, $prodname); 
    break; 
    case 'plus': 
     $result = plus_prod($prod, $prodname); 
    break; 
    case 'remove': 
     $result = remove_prod($prod, $prodname); 
    break; 
    case 'delete': 
     $result = delete_prod($prod, $prodname); 
    break; 
    default: 
     $result = ['result'=>'error']; 
    break; 
    } 
} 

echo json_encode($result); 

function add_prod($prod, $prodname){ 
    //sua função para add 
$_SESSION[$prodname] = 1; 
return ['result'=>'success']; 
} 

function plus_prod($prod, $prodname){ 
    $_SESSION[$prodname]++; 
    return ['result'=>'success', 'val'=>$_SESSION[$prodname]]; 
} 

function remove_prod($prod, $prodname){ 
    //sua função para remove 
    $_SESSION[$prodname]--; 
    return ['result'=>'success', 'val'=>$_SESSION[$prodname]]; 
} 

function delete_prod($prod, $prodname){ 
    //sua função para delete 
    $_SESSION[$prodname] = null; 
    return ['result'=>'success']; 
} 
+1

あなたはJSONデータを期待するために '$ .ajax'を言っているが、それが送信されているものではありませんかどのように応答を処理していますか。それをhtmlに変更してください – charlietfl

答えて

2

両方fabricIDsizeIDajax呼び出しで次のように送信する必要があります。

{size_id: sizeID} & {fabric_id: fabricID}

+0

ここで私が間違っていた場合、私が編集したもの、[code](https://codeshare.io/fgSda)を編集することができます。 –

+0

'json'に' datatype'を残してください – thedeliciousmuffin

+0

私は今それをしましたが、私は値を得ていませんでした。 '' $ _SESSION ['icms'] ' –

関連する問題