HTML
<td class="cell">
<a class="opener"
id="opener_'.$iterator.'"
href="#"
rel="#type_dialog_<?= $iterator; ?>">Select</a>
<div id="type_dialog_<?= $iterator; ?>"
name="type"
class="dialog"
style="display:none">
jQuery コード
$('.dialog').bind('dialogclose', function(event, ui) {
$(this).closest('div.ui-dialog').appendTo('#mlsForm');
});
$('.opener').click(function(event) {
$(".dialog").dialog("close");
var top = $(event.target).offset().top + 15;
var left = $(event.target).offset().left;
$( ".dialog" ).dialog( "option", "position", [left, top] );
$(event.target.rel).dialog("open");
return false;
});
問題は、ユーザーが [選択] をクリックしない限り、更新クエリが空の POST 配列を受け取ることです! 確認しましたが、設定されていません。PHP を実行して既存の「チェック済み」チェックボックスを設定しますが、ユーザーが最初に「選択」をクリックしてダイアログをトリガーしないと、既存のチェックボックスを保存できません。
明確にするために、選択データはダイアログの下にあり、次のdiv
ように機能します。
$input_name = "listing[$iterator][ptid][]";
if (!empty ($numptc1)) {
$tbl_links .= "<td><label><input type='checkbox' name='".$input_name."' value='".$ptid[$i]."' checked />$ptname[$i]</label></td>\n";
}
else {
$tbl_links .= "<td><label><input type='checkbox' name='".$input_name."' value='".$ptid[$i]."' />$ptname[$i]</label></td>\n";
}
ダイアログがトリガーされると、期待どおりに配列が取得されますが、それ以外の場合は取得されません。
[ptid] => Array
(
[0] => 3
[1] => 30
[2] => 18
)