gpt4 book ai didi

php - echo php 变量,在 html 中,再次放入 php 变量中

转载 作者:行者123 更新时间:2023-12-01 08:38:54 25 4
gpt4 key购买 nike

我正在尝试将 html 返回到我的 ajax 请求。ajax 请求请求 Controller 方法根据单击的内容创建 View 。

这是一个简单的表格。但它应该有一个 <select>标签在其中。<select>标签应显示不同的角色,其中已选择一个角色。可以分配给不同的用户。

所以我尝试像这样创建一个对象:

 $roles = $this->database->GetAllRoles();
$selectedRole = $this->database->GetAllRoles()->where('id', '=', $user->roles_id)->first();
foreach($roles as $role){
$selectObject =
'
<option selected value="' . $selectedRole['id'] . '">"' . $selectedRole['name'] . '"</option>
<option value="' . $roles->id . '">"' . $roles->name . '"</option>
';
}
$htmlFinal =
'
<form>
<!-- Form labels and inputs ... -->
<select class="form-control" type="text">
"' . $selectObject . '"
';

It should be

这就是它应该的样子,在表单选择标记中包含一个选定的选项,打开时有更多选项。

显然上面的代码当然不起作用,我尝试了很多不同的方法,但现在有点卡住了。

最佳答案

您在循环内的 $selectObject 变量上使用 =,因此每次迭代都会覆盖该变量。您可以使用 .= 将 HTML 附加到变量中。然后,您不应该在循环内写入所选选项,因为您将多次添加它。另外,您使用 $roles 但在 foreach 中,当前元素是 $role

$selectObject = '<option selected value="' . $selectedRole['id'] . '">"' . $selectedRole['name'] . '"</option>';
foreach ($roles as $role) {
$selectObject .= '<option value="' . $role->id . '">"' . $role->name . '"</option>';
}

最后,为了避免所选角色重复,您可以添加 if 以仅添加其他角色。

$selectObject = '<option selected value="' . $selectedRole['id'] . '">"' . $selectedRole['name'] . '"</option>';
foreach ($roles as $role) {
if ($role->id != $selectedRole['id']) {
$selectObject .= '<option value="' . $role->id . '">"' . $role->name . '"</option>';
}
}

关于php - echo php 变量,在 html 中,再次放入 php 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com