带有多个复选框选择的jQuery UI对话框。在触发对话框之前,无法为多选项保存post数组

时间:2012-04-17 11:30:45

标签: php javascript jquery html jquery-ui

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
    )

1 个答案:

答案 0 :(得分:0)

trigger()准备好后,您可以DOM点击事件:

$(document).ready(function() {
    $('.opener').trigger("click");
});