JQueryダイアログを使用して、ファイルを開くダイアログと同様に動作させようとしていますが、ファイルの代わりにデータベースのレコードを使用してダイアログに入力しています。
私が抱えている問題は、ダイアログの html 選択にロードされた html オプション データを取得できないように見えることです。Chrome で Google Javascript デバッガーを使用し、PHP ajax から呼び出される JavaScript コードをステップ実行しました。エラーは表示されず、データがそこにあり、append ステートメントに入れると正しくフォーマットされていることがわかります。私の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"/>
<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>