好吧,我需要在表单中插入带有php代码的HTML字符串。
我有一个表单来创建新用户。在其中,我需要为此用户插入一个角色,因此我在我的数据库中有一些角色可以应用于他。
我有一个html选择字段来做这个,以及一个添加新rol的按钮。当我单击按钮时,我想在表单中添加一个新的选择字段。但在这段代码中我有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 --
答案 0 :(得分:4)
你做不到。 JavaScript(以及jQuery)运行客户端,PHP运行服务器端。浏览器不知道如何处理您可能插入的任何PHP。
处理此问题的一种方法是让jQuery在服务器中查询角色,并让您的服务器创建(PHP生成的)角色列表。查看AJAX。
答案 1 :(得分:1)
您无法在客户端(Javascript)上插入服务器端代码(PHP)。
当页面首次加载然后从那里加载时,您可以将PHP中的数据加载到JS变量中。
答案 2 :(得分:0)
我不知道它是如何与JQuery完全一致的(我在纯JavaScript中使用它),但是寻找AJAX。