php逻辑是使用if else条件还是多态

标签 php jquery html mysql ajax

伙计们,我在这里想要实现的是,我假设有 5 个按钮(具有不同的选项,使用 jquery 一个接一个地显示,并且使用 ajax 发送数据)。

<div id="div1">
<button value="1" class="div1button">1</button>
<button value="2" class="div1button">2</button>
<button value="3" class="div1button">3</button>
<button value="4" class="div1button">4</button>
</div>
<div id="div2">
<button value="a" class="div2button">a</button>
<button value="b" class="div2button">b</button>
<button value="c" class="div2button">c</button>
<button value="d" class="div2button">d</button>
</div>

现在,当用户单击 div1 上的任何一个按钮时,div 2 会被隐藏...显示 div2,单击的按钮的值将使用 jquery 传递,并使用 ajax 执行 sql 查询。 现在执行查询的 php 包含

$_GET['valDiv1']
$_GET['valDiv2']

php 检查 val1 是否已定义,反之亦然,在获取 div 2 的 val 后......问题就在这里......

我有大约 5 个 div,现在我需要检查所有 div 的值是否存在或只有 1 个或 2 个 .. 等等 .... 如何解决这个问题? 为了检查这一点,我必须实现许多 if else 喜欢:: 如果 div1 已定义...执行此操作 如果定义了 div1 和 div2 ...这样做 如果定义了 div1 和 div2 和 div3 ...做一些事情 如果定义了 div2、div3 和 div5

所以这就是我陷入困境的地方。

我是初学者,请帮忙,有更好的方法来实现我想要的吗?

已解决

感谢@Igor

$selected = array('val1' => null, 'val2' => null, ...);
$selected['val1'] = $_GET['valDiv1'];
$selected['val2'] = $_GET['valDiv2'];
foreach($elements as $val => $key) {
    if($val == 'val1' && $key == 'any') {
        $sql = "SELECT * FROM details";
    } else {
    if($key != null) {  
            if($key != 'any') {
                if($i>0) {
                $sql .= " AND $val='$key'";
                } else {
                $sql = "SELECT * FROM details WHERE $val='$key'";
                $i++;
                }
            }
        }
    }
}

最佳答案

我确信有很多方法可以优化它。其中之一可能是将所有选择不存储在单独的变量中,而是存储在数组中,例如:

$selected = array('val1' => null, 'val2' => null, ...);
$selected['val1'] = $_GET['valDiv1'];
$selected['val2'] = $_GET['valDiv2'];
...

检查时你可以这样做

if (array_search(null, $selected) === false) {
   ...
}

关于php逻辑是使用if else条件还是多态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36820876/

相关文章:

asp.net - JQGrid:用于从外部表中选择项目的下拉菜单 - DataValueField 与 DataTextField

jquery - 基于条件的数据表 oSelectorOpts 选项

html - 溢出 : hidden doesn't work for image

php - PDO 大插入语句

javascript - 是否可以使用Jquery,Javascript,用一行代码为多个div触发 `OnMouseEnter`事件,

javascript - 使用jquery自动生成英国邮政编码中的空格

javascript - 使用 JQuery 和 JavaScript 覆盖链接的默认行为

javascript - PHP 下拉菜单(如果选择了值)

php - Drupal 8存储节点数据替代存储

html - 从 angular 4 中的 html 中删除主机组件标签