1

好吧,我需要在表单中插入一个带有 php 代码的 HTML 字符串。

我有一种形式来创建新用户。在其中,我需要为这个用户插入一个角色,所以我的数据库中有一些角色可以应用于他。

我有一个 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

你不能。JavaScript(以及 jQuery)运行客户端,PHP 运行服务器端。浏览器不知道如何处理您可能插入的任何 PHP。

处理此问题的一种方法是让 jQuery 向服务器查询角色并让您的服务器创建一个(PHP 生成的)角色列表。查看AJAX

于 2013-01-28T14:51:32.957 回答
1

您不能在客户端 (Javascript) 上插入服务器端代码 (PHP)。

您可以在页面首次加载时将 PHP 中的数据加载到 JS 变量中,然后从那里加载。

于 2013-01-28T14:51:01.513 回答
0

我不知道它是如何与 JQuery 一起工作的(我将它与纯 JavaScript 一起使用),但寻找 AJAX。

于 2013-01-28T14:52:10.273 回答