使用Post Data打开jQuery Dialog

时间:2013-04-20 20:39:34

标签: php javascript jquery html ajax

我正在尝试以编程方式打开jQuery对话框。我可以打开对话框,但我无法将帖子数据发送到对话框。

这是代码。

HTML:

<div data-role="page" id="rename-dialog">
        <?php
            $current_group = $_POST['gr_name'];
            $current_code = $_POST['gr_code'];
            $current_id = $_POST['in_id'];
        ?>

        <div data-role="header" data-theme="d" class="ui-header ui-bar-d" role="banner">
            <a href="#main-page" class="ui-btn-left ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-notext ui-btn-up-d" data-icon="delete" data-iconpos="notext" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="d" title="Close" ktbt_p_pass="1">
                <span class="ui-btn-inner">
                    <span class="ui-icon ui-icon-delete ui-icon-shadow">&nbsp;</span>
                </span>
            </a>
            <h1 class="ui-title" role="heading" aria-level="1">Rename <?php echo $current_group; ?></h1>
        </div>

        <div data-role='content'>
            <form id='rename-group-form' action='' method='post'>
                New name for <?php echo $current_group; ?>: <input type='text' name='new-group-name'><br>
                <input id='rename-submit' type='submit' data-theme='b' value='Rename'></input>
            </form>
        </div>
</div>

JAVASCRIPT:

var g_code = parseInt($(this).attr("id"));
var i_id = parseInt($(this).attr("value"));
var g_name = $(this).attr("text");

$.mobile.changePage( "#rename-dialog", {transition: 'slideDown', role: 'dialog'}, {
        type: "post",
        data: {gr_code: 'test', in_id: 'test', gr_name: 'test'}
});

基本上这会打开对话框,但是我收到错误,索引g_code,in_in和gr_name未定义。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

假设所有相关代码都显示在您的问题中......

由于您拥有的代码可以获取任何块之外的g_code,i_id和g_name的值,因此未定义$(this)。例如,在这种情况下:

$("#item").click(function() {
    var item_id = $(this).attr("id");
});

$(this)将引用ID为“item”的DOM元素,因为选择器是“#item”。

如果您提问的代码不在选择器块内,可能需要将其移动到一个,或者您需要将“this”替换为实际选择器以获取DOM元素想。

如果这些答案都不适用,请发布更多代码,以便更好地了解正在发生的事情。