ホームページ >バックエンド開発 >PHPチュートリアル >データベースを読み込んでループして選択ドロップダウンリストを作成しましたが、jsを介して指定された値を割り当てることができません。どうすれば解決できますか? (スペアポイント、足りない場合は追加料金がかかります)
よく考えてみると、これは実際には 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>
<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に変更し、ついに成功しました
11e5dac3c25ef2606e71ebda5aa1e558 "> ;8917faa4869f9fe5281219d9e77af8544afa15d3069109ac30911f04c56f3338
真ん中に余分なスペースがあります!