【问题标题】:PHP Disable INPUT text field based on database valuePHP根据数据库值禁用INPUT文本字段
【发布时间】:2020-02-03 13:11:48
【问题描述】:

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

例如:

我的输入框:

<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();
        ?>

【问题讨论】:

  • 为了更好地了解我的问题,有我的测试站点:www.part21.tech

标签: php input field disable


【解决方案1】:

首先通过回显 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>

将是您正在寻找的东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多