在条件下禁用按钮

时间:2015-03-22 15:09:58

标签: php mysql

我有一个从sql查询显示的按钮:

     $username = new User();
    $name = $username->data()->username;
    $sql1 = DB::getInstance()->query("SELECT names FROM list WHERE username = '$name'");
   if (!$sql1->count()) {
        echo 'No data';
    } else {
        foreach ($sql1->results() as $sql1) {
            ?>

                                    <p><button class="" > <?php echo $sql1->names; ?></button></p>
                                    <?php                            
                             }
                          }

这会显示两个与查询条件匹配的按钮,因此如果它与其他条件不匹配,我会尝试禁用其中一个显示的按钮。 例如,有两个按钮,约翰和贵宾犬。如果其中一个按钮是动物,则匹配一个查询。

因此,如果按钮john与查询不匹配,则应禁用它。

3 个答案:

答案 0 :(得分:1)

我会尝试在问题的评论中表达这个想法,正如你要我一步一步地解释它:

foreach ($sql1->results() as $set) {
    echo sprintf('<p><button %s>%s</button></p>'."\n", 
        in_array($set->name, array('poodle','cat','sheep')) ? 'disabled' : '',
        $set->name);
}

这里$set是foreach循环的每次迭代的不同对象(属性集)。您说在查询结果中有两个条目,因此生成了两个按钮。如果您理解您的代码正确(我不知道您的数据库......),则每个$set都有一个名称($set->name)。此名称用于两次以生成每个按钮:首先,该名称用作按钮中的文本,然后在条件中使用该名称来决定是否应禁用该按钮。该条件实现为三元表达式,在上面的示例中为第3行。在该行中,调用一个函数:in_array()。返回true或false。如果为true,则属性&#34;禁用&#34;添加到按钮,如果为false,则添加空字符串(&#39;&#39;),因此按钮具有disabled属性。

这显然没有完成代码。这是为了给你这个想法,所以你应该理解它,而不仅仅是复制并尝试它。如果出现问题,请随时询问!

答案 1 :(得分:0)

尝试以下方法:

<button class="<?php if($sql1->names != "required_name") echo "disabled" ?>">
<?php echo $sql1->names; ?> 
</button>

答案 2 :(得分:0)

要禁用php + html按钮,您可以尝试使用返回“已禁用”的查询值。 例如:在查询中使用CASE WHEN语句在定义条件时返回禁用值:

SELECT filed1,
CASE 
    WHEN field1= '19' THEN 'disabled'
    WHEN field1='20' THEN ''
    WHEN filed1='21' THEN ''
    WHEN field1='22' THEN ''
    ELSE 'disabled'
END AS for_button 
FROM table1 AS tbl1 
WHERE tbl1.field1_param = '$param'

输入HTML TAG按钮:

<input type="submit" value="Button OnOff" <?=$disableButton['for_button']; ?>>

如果返回的值是禁用,则在for_button变量中,写入从查询返回的valure,该按钮将被禁用。