ホームページ > バックエンド開発 > PHPチュートリアル > データベースを読み込んでループして選択ドロップダウンリストを作成しましたが、jsを介して指定された値を割り当てることができません。どうすれば解決できますか? (スペアポイント、足りない場合は追加料金がかかります)

データベースを読み込んでループして選択ドロップダウンリストを作成しましたが、jsを介して指定された値を割り当てることができません。どうすれば解決できますか? (スペアポイント、足りない場合は追加料金がかかります)

WBOY
リリース: 2016-06-23 14:19:07
オリジナル
1068 人が閲覧しました

よく考えてみると、これは実際には js とは何の関係もなく、やはり php の問題です。

問題の背景: ページの左側にはいくつかのレコードのリストがあり、右側には情報を入力して後で保存するための空のボックスが多数あります。次に、左側のレコードの 1 つをクリックすると、関連する情報が右側に表示されます。上記の機能はすべて実装済みです。
質問: 右側にある多くの空のボックスの 1 つは、どの車を選択するための選択ドロップダウン リストです。私のアプローチは、データベースから carNum (整数型) を読み取り、それを選択のオプションの値として使用することです。表示される値は、データベース内の車両に対応する LicenseNum (ナンバー プレート番号) です。のPHPループメソッドを使用して実装されています。しかし、jsを使用してIDのselectの値を指定すると、selectはまったく応答しません。このselectを特定のselect(つまり、PHPループを削除し、HTMで値とオプション名を直接設定)に変更すると、JSでselectの値を指定してその値を表示できるようになります。

しかし、ループ内で選択を設定でき、js で値を指定できることを望みます (明らかに、この場合、動的に表示できます。)
それを解決するにはどうすればよいですか?ポイントを広めてください。それでも足りない場合は、返信またはプライベートメッセージを送ってください。それを補うことができます。

コードに直接移動します:

<!---下面是htm直接设定html的select的代码----><select id="showOrder_21" name="truck" class="dropdown" style="margin-left:0px !important; border:1px solid #BABABA !important;">        <option  value ="1">QAZ123</option>        <option  value ="2">WSX234</option>        <option  value ="3">EDC345</option>        <option  value ="4">TGB456</option></select></td>
ログイン後にコピー


以下はループで実装された選択です:
 <select id="showOrder_21" name="truck" class="dropdown" style="margin-left:0px !important; border:1px solid #BABABA !important;"><?php $query = "select * from transport.truck order by carNum";$data = getAll($query);foreach($data as $each){?><option value="<?php  echo $each['carNum'];  ?> "><?php echo $each['licNum'];?></option><?php } ?></select></td>
ログイン後にコピー



以下は私が使用した JS 部分です:
<script type="text/javascript">    $(document).ready(function(){        $(".LeftTask").click(function(){                   $(this).css("background","#A8A8A8");            $(this).siblings().css("background","white");            var orderID = $(this).find('input').val();            $.ajax({                type:"get",                url:"main/ajax.php",                data:{                    orderID:orderID                },                success:function(msg){                    msg = eval("("+msg+")"); <!---当中删除大量不相关的显示--->                    $("#showOrder_21").val(msg.truck);              }        });    });});    </script>
ログイン後にコピー



皆さん、私を導いてください! ! !
この問題を解決するにはどうすればよいですか?キー コード スニペットまたはオンライン ケースを提供してください。ありがとうございます。 ! !


ディスカッションへの返信 (解決策)

$(".LeftTask").click(function(){



$(".LeftTask").live("click",function(){ に変更されました。 ......

後者の利点は、「ページのロード後に DOM ノードが生成されてもイベントをバインドできる」ことです。

jquery のマニュアルを参照してください。 .LeftTask") .click(function(){


に変更します
$(".LeftTask").live("click",function(){ .......

後者の利点は次のとおりです。ノードはページがロードされた後に生成され、イベントにバインドすることもできます。

jquery マニュアルを参照してください。

わぁ、ここに来ました、ようこそ。今すぐ試してください。
ありがとう

もう 1 つのより良い方法は、動的に生成された HTML タグで onclick="xxxxxxxx()" を使用する利点は、ライブ

$(".LeftTask").click(function(){ のようにブラウザのリソースを消費しないことです。

に変更します

$(".LeftTask").live("click",function(){ ......

後者の利点は、ページの後に DOM ノードが生成された場合でもロードされている場合はバインドできます

jquery マニュアルを参照してください

エラー メッセージ:
行: 408
エラー: オブジェクトはプロパティまたはメソッド 'live' をサポートしていません

おそらく、それはヘッドに設定したバージョンです。
2 日前あなたが私に与えたチェックボックスの属性も間違っていました、そして私はそれを最新バージョンのpropに変更し、ついに成功しました

真ん中に余分なスペースがあります!

になりました

問題なければおかしいです


賢明なことに、私は長い間自分でそれをチェックしていましたが、同時にこの問題を発見しました。


このようにして、モデレーターは問題を指摘し、一貫したサポートを私に求めます。

投稿していただきありがとうございます。お二人とも知り合いですが、これでいいと思いますか:
モデレータは 65 ポイントを取得しますが、もう一度私を見たら 35 ポイントはどうでしょうか?

このようにして、モデレータは問題を指摘し、一貫したサポートを私に求めます。

投稿していただきありがとうございます。お二人とも知り合いですが、これでいいと思いますか:
モデレータは 65 ポイントを取得しますが、もう一度私を見たら 35 ポイントはどうでしょうか?


彼らは全員知り合いです、今のところはここまでです。ご満足いただけない場合は、返信するかプライベートメッセージをお送りください。

何度も助けていただきありがとうございます! ! !

スコアが雲の上でも構いません... 質問がある場合は、コミュニケーションを続けてください... 編集者は本当に鋭くて、問題が一目でわかります~

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート