2012-05-04 5 views
0

JQueryダイアログを開いたファイルダイアログと同様に動作させようとしていますが、ファイルではなく、データベースのレコードを使用してダイアログに入力しています。ダイアログ内のJQuery selectにオプションが追加されていない

私の問題は、ダイアログボックスのhtml selectにhtmlオプションのデータを読み込むことができないということです。私はChromeでGoogle Javascriptデバッガを使用し、PHP ajaxから呼び出されるjavascriptコードを実行しました。私はエラーがないと私はデータがそこにあり、私はそれを追加ステートメントに入れて正しく表示されて参照してください。私はなぜそれが私のHTMLの選択で表示されないのか分かりません。

ありがとうございました。

以下は、データを受け取る私のAjax関数です。参考

関数doOpenAjax(filterStr) {

$.get(
     "contenteditServerAjax.php", 
     {filter: filterStr }, 
     function(data) { 
          var optsArr = data.split('|~|'); 
          var seloption = ""; 

          $.each(optsArr, function(i) { 
           seloption += '<option value="' + optsArr[i] + '">' + optsArr[i] + '</option>'; 
          }); 
          $('#chooseArticleName2').find('option').remove().end(); 
          $('#chooseArticleName2').append(seloption); 
         }, 
     "html" 
     ); 

} 

これはjqueryのダイアログが含まれている私のPHPの一部である:

<head> 
<script> 
$(document).ready(function() { 

    var dlg = $("#opendiv").dialog({modal:true, height:550, width:650, 
         hide:{ effect: 'drop', direction: "down" }, 
         autoOpen:false, 
         maxHeight: 1200, 
         maxWidth: 1200, 
         minHeight: 250, 
         minWidth: 300, 
         buttons: { "Open": function() { $('#state').val('Open Doc');  $('#contentform').submit(); $(this).dialog("hide"); }, 
         "Cancel": function() { $(this).dialog("close");}}        
    }); 
    dlg.parent().appendTo($("#contentform")); 

}); 
</script> 

<div id="opendiv" name="opendiv" title="OPEN"> 

    <p align="center">Enter Name to Open Article as:</p> 
    <p> 
     Filter: 
     <input name="docFilter2" id="docFilter2" type="text" value="$filter2" maxlen="64" size="28"/>&nbsp; &nbsp; 
     <input name="LoadTitles2" id="LoadTitles2" type="button" value="Load Available Titles" 
           onclick="doOpenAjax($('#docFilter2').val());"/> 
    </p> 
    <p> 
     <div id="ajaxOutput2"> 
      <select name="chooseArticleName2" id="list2" size="8" style="min-width:92%" 
             onchange=" 
             var mytext = $('#chooseArticleName2 :selected').text(); 
             $('#textBoxArticleName2').val(mytext);"> 
      </select> 
     </div> 
    </p> 
    <p> 
     Document: 
     <input type="text" id="textBoxArticleName2" name="textBoxArticleName2" size="56"/> 
    </p> 
</div> 

答えて

0

ちょうどFYI、それがこれを行うために、より効率的である。これより

$('#chooseArticleName2').empty().html(seloption); 

$('#chooseArticleName2').find('option').remove().end(); 
$('#chooseArticleName2').append(seloption); 
+0

おかげでジャックを、もともと私はHTMLを返していました似たようなをしていましたajax phpとdiv全体を置き換えます。私がこのアプローチを打ち切ったのは、onchangeコールバックを置き換えると思われるHTMLを置き換えたときに、$( '#chooseArticleName2')selectコントロールからのonchangeコールバックに問題があったからです。 – user1374176

関連する問題