0

最初の選択ボックスの値から 2 番目の選択ボックス名 'ctype' を設定したい。しかし、問題は、私が添付した値をまだ表示していません...方法がわかりません..今すでに2週間解決しようとしています..しかし、2番目の選択ボックスに表示するものはまだありません..

現金.php

最初のセレクトボックスに

<?php $qryselect = mysql_query("select * from cc_merchant"); ?>      
<select id="merchant" name="merchant"  style="font:25px Arial, Helvetica, sans-serif;   font-weight:bold; color:#000000;">
     <option value=''>--Choose One--</option>
            <?php while($getrow=mysql_fetch_array($qryselect)) {?>
     <option value="<?php echo $getrow['merchant_id']; ?>" ><?php echo $getrow['bank_merchant'];  ?></option>
            <?php }  ?>
</select>

2 番目の選択ボックス

<p id="ctype">
    <select id="ctype_id" name="ctype_id" style="font:25px Arial, Helvetica, sans-serif; font-weight:bold; color:#000000;">    
        <option value="">--Choose One--</option>
     </select>
</p>

jquery

<script type="text/javascript">
    $("#merchant").selectbox({
    onChange:function(val,inst){
            $.ajax({
                    type:"GET",
                    data:{merchant:val},
                    url:"getctype.php",
                    success:function(data){
                          $("#ctype").html(data);
                          $("#ctype_id").selectbox();
                    }
            });
         },
    });
</script>

スクリプト getctype.php

<?php
   session_start();
   require_once("dbcon.php");
   $target = $_GET['merchant'];

   $sql = mysql_query("select card from card_support where merchant_id = '$target'");
   $getmerchant = mysql_fetch_assoc($sql);
   $card = $getmerchant['card'];

   echo $card."\n";
?>

これは私が従う例です...最初の選択ボックスの値が2番目の選択ボックスに入力されます... http://www.bulgaria-web-developers.com/projects/javascript/selectbox/index.php

4

2 に答える 2

1

まず、getctype.phpがデータベースに要求し、1枚のカードのみを返します。複数の値を返すために、結果を反復処理する必要があるかもしれません。さらに、JSONデータ(Javascriptで簡単に管理できる)を返すことをお勧めします。この作業は、次のようなコードで実行できます。

<?php

// start the session and load your libs
session_start();
require_once("dbcon.php");

// Ask DB for result and store them in an array
$sql = mysql_query("select card from card_support where merchant_id = '$target'");
$result = array();
while($getmerchant = mysql_fetch_assoc($sql))
    $result[] = $getmerchant;

// Send JSON header (no cache)
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

// Finally return the array in JSON format
echo json_encode($result);

PHPスクリプトによって返されるデータは、次のようなJSON応答になります。

["card1","card2","card3",....]

次に、AJAX呼び出しを見ると、success関数はHTMLElementをidctypeに置き換えています

$("#ctype").html(data);

id ctypeのHTMLElementは、<p>であるため、のコンテンツ<p>は完全に生のコンテンツ(カード値)に置き換えられますが、はではありません。次に、コードの2行目:

$("#ctype_id").selectbox();

はもう存在しないため、効果はありません(AJAX呼び出しからのコンテンツリターンに置き換えられます)。

それを機能させるために、JSでこの2番目のコードを使用できます。

// Assume the second select is already a **selectbox**    

// Make the first select a selectbox
$("#merchant").selectbox({

    onChange:function(val,inst){

        // Run the ajax call to refresh the content of the second selectbox
        $.ajax({
            type: "GET",
            data: { merchant: val },
            url:"getctype.php",
            dataType: 'json',
            success: function(data) {

                // Remove previous content of your second selectbox
                $("#ctype_id").empty();

                // Append default option
                $("#ctype_id").append($('<option value="">-- Chose one --</option>'));

                // Loop on your data (which is an array)
                for(var i = 0 ; i < data.length ; i++)
                {
                    $("#ctype_id").append($(document.createElement("option"))
                                          .val(data[i])
                                          .html(data[i]));
                }
            }
        });
    }
});
于 2012-12-14T04:13:03.403 に答える
0

jquery を使用する場合は、次のことを行う必要があります。

 $("#merchant").on('change', function() {

 $('#ctype_id').empty();
 $.get('getctype.php', function(data) {
 $(data).appendTo('#ctype_id');

 });
 });

あなたのphpコードは次のようになります:

echo '<option value="">--Choose One--</option>'
$sql = mysql_query("select card from card_support where merchant_id = '$target'");
$getmerchant = mysql_fetch_assoc($sql);
$card = $getmerchant['card'];

echo '<option value="'.$card.'">'.$card.'</option>';
于 2012-12-14T04:00:49.313 に答える