3

私は自分の Web サイトの 1 つのユーザー管理パネルに取り組んでおり、すべての正しい情報をダイアログに適切に渡す方法を見つけようとしています。

ユーザーを表示するHTMLは次のとおりです。

<table>
  <tr>
    <td>{$v.id}</td>
    <td><a href="#" class="editUser" data-userid="{$v.id}">{$v.username}</a></td>
    <td>{if $smarty.now - $v.last_active <= 900}<span style="color: green;">Online</span>{else}<span style="color: #e61e1e;">Offline</span>{/if}</td>
    <td>{$v.email}</td>
    <td>{$v.time}</td>
    <td>{$v.notes}</td>
    <td align="center"><input name="delete" type="checkbox"/></td>
  </tr>
</table>

ユーザー名をクリックすると、jQuery UIを含むダイアログが開きます。これを処理するjQueryコードは次のとおりです。

   $('a.editUser').click(function(){
        $('#editUser').dialog('open');
        //var userID = $(this).data('userid');
        //var username = $(this).attr('title');
        //$('#editUser').html(userID);
   });

とてもシンプルです。コメントアウトされたコードは、ユーザー間で差別化されていることを確認するためにテストするために使用していたものです。

もちろん、これでダイアログが開き、問題なく動作します。ただし、ダイアログが開いたときにユーザーの情報を適切に表示するように div を設定する方法がわかりません。さらに、ユーザーのアカウントに変更を送信できるようにしたいのですが、変更するユーザーを認識できるように、ユーザーの ID をフォーム プロセッサに送信する方法がわかりません。

私はしばらくの間グーグルで検索してきましたが、多くの同様のスレッドを見つけましたが、これを実際にカバーしているものはありません.

4

2 に答える 2

2

#editUser div を作成します

<div id="editUser">
<span id="username"></span>
</div>

関数では、関数を呼び出す前に、クリックしたユーザーの情報をダイアログ ボックスに入力しますdialog

$('a.editUser').click(function(){
        $("#username").html($(this).data('userid'));
        $('#editUser').dialog('open');
        //var userID = $(this).data('userid');
        //var username = $(this).attr('title');
        //$('#editUser').html(userID);
   });

ここで、隠し変数を使用して別の場所にフォームを作成します。送信ボタンで、$("#username") または JS 変数などの上記の ID から情報を抽出し、送信前にフォームに設定する場合は JavaScript 関数を呼び出します。

于 2012-07-29T15:31:51.707 に答える
1

ダイアログは上記のコードと同じドキュメント内にあるため、たとえばダイアログの div にdiv、既知の ID を持つ div を追加するだけで済みます。<div id="stufftochange"></div>

次に、div を開く前に呼び出し$('#stufftochange').html("user's info here");てその内容を動的に変更し、次に$('#editUser').dialog('open');

于 2012-07-29T15:05:51.650 に答える