首页 > 解决方案 > PHP根据数据库值禁用INPUT文本字段

问题描述

我有一个包含多个输入的公司表(数据库),如果另一个字段中有某个值,我需要禁用一个输入字段,

例如:

我的输入字段:

<td><input type=text name=invoice list=invoice maxlength=10 value= " . $row[ "invoice" ] . "></td>

如果发票不为空或有特定文本,我需要禁用第二个输入字段 amstaff:

<td><input type=text name=amstaff list=amstaff maxlength=30 value=" . $row[ "amstaff" ] . "></td>

它全部插入到 PHP 代码中,所以 javascript 或 jQuery 在这里不起作用,我已经在这个论坛或其他地方尝试了很多东西,但对我没有任何作用。

请有关如何禁用该输入字段以使其无法再更改的任何建议?如果输入字段发票不为空,则使用 php。

回声功能也不起作用,因为这些输入字段在回声内,这是我的代码的一部分:

// output data of each row
            while ( $row = $result->fetch_assoc() ) {
                echo
                "<tr bgcolor='".getcolour($row['status'])."'> <form class=upwo method=post action=update.php>
                <td>" . $row[ "id" ] . "</td>
                <input type=hidden name=id value= " . $row[ "id" ] . ">
                <td class='descrow'>" . $row[ "descr" ] . "</td> 
                <td>" . $row[ "part" ] . "</td>
                <td>" . $row[ "cust" ] . "</td>
                <td>" . $row[ "acreg" ] . "</td>
                <td>" . $row[ "cat" ] . "</td>
                <td>" . date('d M yy', strtotime($row[ "issue" ])) . "</td>
                <td>" . date('d M yy', strtotime($row[ "clousure" ])) . "</td>
                <td><input type=text name=amstaff list=amstaff maxlength=30 value=" . $row[ "amstaff" ] . "></td>
                <datalist id=exstaff>
                            <option value=Peter Majo></option>
                            <option value=Dano Adamek></option>
                            <option value=Rado Janousek></option>
                            <option value=Niko Ivanics></option>
                            <option value=Marian Polacik></option>
                            <option value=Dusan Duben></option>
                        </datalist>
                <td><input type=time name=amtime maxlength=8 value= " . $row[ "amtime" ] . "></td>
                <td><input type=text name=exstaff list=exstaff maxlength=30 disabled value= " . $row[ "exstaff" ] . "></td>
                <datalist id=exstaff>
                            <option value=Peter Majo></option>
                            <option value=Dano Adamek></option>
                            <option value=Rado Janousek></option>
                            <option value=Niko Ivanics></option>
                            <option value=Marian Polacik></option>
                            <option value=Dusan Duben></option>
                        </datalist>
                <td><input type=time name=extime maxlength=8 value= " . $row[ "extime" ] . "></td>
                <td>" . $row[ "summ" ] . "</td>
                <td><input type=text name=form maxlength=20 required value= " . $row[ "form" ] . "></td>
                <td><input type=text name=invoice list=invoice maxlength=10 required value= " . $row[ "invoice" ] . "></td>
                <datalist id=invoice>
                            <option value=JAN></option>
                            <option value=FEB></option>
                            <option value=MAR></option>
                            <option value=APR></option>
                            <option value=MAY></option>
                            <option value=JUN></option>
                            <option value=JUL></option>
                            <option value=AUG></option>
                            <option value=SEP></option>
                            <option value=OCT></option>
                            <option value=NOV></option>
                            <option value=DEC></option>
                        </datalist>
                <td>" . $row[ "status" ] . "</td>
                <td><input type=submit value=Update></td>
                </form></tr>";
            }

            echo "</table>";
        } else {
            echo "0 results";
        }
        $conn->close();
        ?>

标签: phpinputfielddisable

解决方案


首先通过回显 php 变量而不是所有 html 来简化您的代码:您可以这样做:

while ( $row = $result->fetch_assoc() ) {
                ?>
                <tr bgcolor="<?php echo getcolour($row['status']); ?>"><form class=upwo method=post action=update.php>

等等。

然后,来解决您的问题(在您修复了上面的 echo 部分之后):

<td><input type=text name=amstaff list=amstaff maxlength=30 
<?php if($row[ "invoice" ]==""|$row[ "invoice" ]="some_text_here"){
          echo " disabled ";
      }else{
          echo " ";
      }
?>
value="<?php echo $row[ "amstaff" ] ?>"></td>

将是你正在寻找的


推荐阅读