Php逻辑是否使用if else条件或多态

时间:2016-04-24 08:26:37

标签: 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传递,sql查询使用ajax执行.. 现在执行查询的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++;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

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

检查时可以做到

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