1

さて、フォーム内に PHP コードを含む HTML 文字列を挿入する必要があります。

新しいユーザーを作成するためのフォームが 1 つあります。その中に、このユーザーの役割を挿入する必要があるため、データベースにいくつかの役割を適用します。

それを行うためのhtml選択フィールドと、新しいロールを追加するためのボタンがあります。ボタンをクリックすると、フォームに新しい選択フィールドを追加したいと考えています。しかし、このコード内には、すべてのロールを表示する PHP コードがあります。jQueryを使用してこの方法を試します:

$(document).ready(function () {
    $('#add-role').click(function (event) {
        var newRoleField = "<label for=\"usuario_perm_id\">ROLE <span class=\"required-field\"> * </span>:</label>" +
            "<select id=\"usuario_perm_id\" name=\"usuario_perm_id\" tabindex=\"7\">" +
            "<option <?php echo ($this->usuario[\"rol_id\"] == \"none\" ? 'selected=\"selected\"' : null); ?> value=\"none\">-- Seleccione un rol --</option>" +
            "<?php foreach ($this->roles as $rol): ?>" +
            "<option value=\"<?php echo $rol[\"rol_id\"]; ?>\" <?php echo ($this->usuario[\"rol_id\"] == $rol[\"rol_id\"] ? 'selected=\"selected\"' : null); ?>><?php echo $rol[\"nombre\"]; ?></option>" +
            "<?php endforeach; ?>" +
            "</select><br />";

        $('#new-roles').append(newRoleField);

        event.stopPropagation();
        event.preventDefault;
    });
});

そして、新しい選択フィールドを取得しますが、その中には次のテキストがあります。

usuario["rol_id"] == "none" ? 'selected="selected"' : null); ?> value="none">-- Select role --

4

3 に答える 3

4

You can't. JavaScript (and thus also jQuery) runs client side and PHP runs server side. The browser has no idea how to handle any PHP you might insert.

A way to handle this, is to have jQuery query the server for the roles and have your server create a (PHP generated) list of roles. Check out AJAX.

于 2013-01-28T14:51:32.957 に答える
1

You can't insert server side code (PHP) on the client (Javascript).

You can load the data from PHP into a JS variable when the page first loads up and then load from there.

于 2013-01-28T14:51:01.513 に答える
0

JQuery で正確にどのように機能するかはわかりませんが (純粋な JavaScript で使用しました)、AJAX を探してください。

于 2013-01-28T14:52:10.273 に答える