繁体   English   中英

有没有办法只有在 php 中选择了选项后才显示命令

[英]is there a way to show command only after the option is selected in php

我无法弄清楚在选择选项后如何放置所选代码。

我正在使用 laravel,但我认为它与 laravel 框架无关...

<select id="idjenisuniform" name="idjenisuniform"  style="width: 100%;">
   <option value=""></option>
       @foreach($idjenisuniform as $g)
          <option value="{{$g->id}}" >{{$g->badanuniform}}</option>
       @endforeach
</select>

idjenisuniform来自 controller,它有效),但我只是不知道从选项中完成选择后该怎么做。

例子

它选择police -> the id is 1

我要实现:

如果它的选项是1 ,那么它将显示其他选项以显示他在哪个组。例如detective

总之,我正在尝试创建一个 select 选项,在选择它之后,它将继续执行与选项中的前一个 id 相对应的下一个 select 选项。

请帮忙。

由于您想要一种取决于用户交互的效果,因此最好使用 javascript 来获得您想要的效果。 php,选择要go一路返回web服务器处理,然后将结果一路传回浏览器,结果刷新整个web页面。 使用 javacript,一切都发生在浏览器中。

但是,您要求 php 解决方案,所以这是最简单的方法。 假设第一个 select 元素名为“select-one”,第二个 select 元素名为“select-two”

创建两个 forms。注意第二个表单有一个 ID。

[form action="/url/" method="whatever"]
[form id="other-form" action="/url/" method="post"]

在主表单(没有 ID 的表单)中,放置所有表单元素。 此外,放置另一个与第一个 select 元素同名的隐藏元素(“select-one”);

[form]
[input type="hidden" name="select-one"]
... all other elements
[/form]

现在,当您添加第一个 select 元素时,给它一个新属性,以便它与“其他形式”而不是与主形式相关联。 另外,给它一个ID。

[select id="select1" name="select-one" form="other-form"]

您必须添加一点 javascript,但并不多。 如果您没有设置任何其他 javascript,只需将它放在 web 页面的底部,就在 [/body] 标签上方。

[script]
const select1 = document.querySelector('#select1');
select1.addEventListener('change', (event) => event.target.form.submit());
[/script]

javascript 将提交与#select1 关联的表单。 由于我们将元素分配给“other-form”,这就是将要提交的表单。

对于 php:我已经很长时间没有使用 Laravel 了,所以我在这里只提供一些普通的 php。

$options_one = ['One', 'Two', 'Three'];

$options_two = [
  'One' => ['Foo', 'Bar', 'Baz'],
  'Two' => ['Boom', 'Bang', 'Bam'],
  'Three' => ['Fee', 'Fie', 'Fo', 'Fum']
];

$select_one = (isset ($_POST['select-one']) ? $_POST['select_one'] : false;
// do some input validation

现在对于 forms:

<form id="other-form" method="post" action = ""></form>

<form id="main-form" action="">
  <input type="hidden" name="select-one" value="<?php echo $select_one ?>">

  <!-- This element is assigned to "other-form" -->
  <select form="other-form" name="select-one" id="select1">
    <option value="">Select One...</option>
    <?php foreach($options_one as $option) {
      $option = ($select_one === $option) ? "<option selected>$option</option>" : "<option>$option</option>";
      echo $option;
    }?>
  </select>

  <select name="select-two">
    <?php
    $options = ["The first choice has not been selected"];

    if (array_key_exists($select_one, $options_two)) {
      $options = $options_two[$select_one];
    }

    foreach ($options as $option) {
      echo "<option>$option</option>";
    }
    ?>
  </select>

  <!-- other inputs in your form -->
</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM