2017-10-12 11 views
1

私はPHPプログラミングの初心者です。 私は以下のHTMLコードと2つのPHPコード "include"を持っています。 ISSET()がなぜ発射されないのかわかりません。 私はisset(){}を削除するとデータが完全に細かくなります... しかし、私がisset()を試してみると、データは表示されません。誰も助けることができますか?私が言うことができるものから、PHPでインクルードを使用してisset()が正しく動作しない

<form action="functions/pos-getPrice.php"class="form-horizontal" 
 
method="post"> 
 
    <div class="form-group"> 
 
    <label class="col-md-4 control-label">Item</label> 
 
\t  <div class="col-md-6 selectContainer"> 
 
\t \t  <div class="input-group"> 
 
<span class="input-group-addon"><i class="glyphicon glyphicon-list"></i> 
 
</span> 
 
    \t  <select name="item" id="item" class="form-control selectpicker" > 
 
    \t  \t <option>Please select your item</option> 
 
    \t \t  <?php include "functions/pos-getItems.php" ?> 
 
\t  </select> 
 
\t  </div> 
 
\t </div> 
 

 
<div class="form-group"> 
 
    \t <label class="col-md-4 control-label">Price</label> 
 
\t  \t <div class="col-md-6 selectContainer"> 
 
\t \t \t \t <div class="input-group"> 
 
<span class="input-group-addon"><i class="glyphicon glyphicon-list"></i> 
 
</span> 
 
\t \t <select name="price" class="form-control selectpicker" > 
 
\t \t \t <option value="">Please select your price</option> 
 
\t \t  <?php include "functions/pos-getPrice.php" ?> 
 
\t \t </select> 
 
\t </div> 
 
    \t </div> 
 
</form>

<?php 
 

 
if(isset($_POST['item']) && $_POST['item'] == 'jacket') { 
 

 
    include "db-Info.php"; 
 
    
 
    $res = mysqli_query($con, "select id, price, pointRequired from 
 
tblPrice"); 
 
    while($row = mysqli_fetch_array($res)) 
 
    { 
 
     $price = $row['price']; 
 
     $pointRequired = $row['pointRequired']; 
 
     echo "<option value=\"".$row['id']."\">"; 
 
     echo "Price: $price" ?> &nbsp;<?php echo "Point: $pointRequired"; 
 
     echo "</option>"; 
 
    } 
 
} 
 
?>

<?php 
 

 
include "db-Info.php"; 
 

 
$res = mysqli_query($con, "select distinct item from tblPrice"); 
 
while($row = mysqli_fetch_array($res)){ 
 
    
 
    $array = $row['item']; 
 
    echo "<option value=\"".$row['item']."\">"; 
 
    echo $array; 
 
    echo "</option>"; 
 
} 
 
?>

+0

送信ボタンはありません。どのようにフォームを提出していますか? – apokryfos

答えて

0

、私はあなたのアイテムリストを想定しています正しく読み込まれていて、あなたの価格表は正しくありませんか?ユーザーがアイテムを選択したときに価格表が変更されることを期待していますか?

フォームを含むページを読み込むと、この例では$ _POSTデータはありません。ドロップダウンの項目を選択しても、価格の変更を引き起こすようなPOSTリクエストは一切送信されません。したがって、ページの読み込み時に、価格スクリプトは$ _POST ["item"]が設定されているかどうかを確認し、その項目がページ読み込み時ではない "ジャケット"であるかどうかを確認します。だから、価格はかかりません。スクリプトはそれ以降の項目が何であるかをチェックし続けません。

選択したアイテムに基づいて価格が動的にロードされることを期待している場合は、アイテムが選択されるたびに価格オプションを取得するAJAX呼び出しが必要になるか、ページが読み込まれたら、javascriptを使用してアイテムセレクタの変更時に価格オプションを設定します。

関連する問題