0

プログラムで 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>

ジャバスクリプト:

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 が未定義であるというエラーが表示されます。

私は何を間違っていますか?

4

1 に答える 1

0

関連するすべてのコードが質問に表示されていると仮定すると...

ブロックの外側に g_code、i_id、および g_name の値を取得するコードがあるため、 $(this) は定義されていません。たとえば、この場合:

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

セレクターが「#item」だったため、$(this) は ID が「item」の DOM 要素への参照になります。

質問のコードがセレクター ブロック内にない場合は、セレクター ブロックに移動する必要があるか、「this」を実際のセレクターに置き換えて、必要な DOM 要素を取得する必要がある可能性があります。

これらの回答のいずれにも当てはまらない場合は、コードをさらに投稿して、何が起こっているのかをよりよく理解してください。

于 2013-04-20T21:14:52.047 に答える