【问题标题】:PHP - Validate if textbox has a value or not?PHP - 验证文本框是否有值?
【发布时间】:2019-01-28 02:16:38
【问题描述】:

我想验证文本框是否有值。现在我拥有的是一个文本框,它有一个值,但输出显示它是空的,这就像没有任何东西以代码为条件,请看我的代码,谢谢

完整代码

-这是我的表格的完整代码,请看一下非常感谢

    <form>
          <div class="row">
            <form method="POST">
            <div class="col-md-8">
              <?php
              $code = 'Code';
              $code2 = 'PIN'; 
            if(isset($_POST['btnSubcode'])) {
              $lblCode  =  isset($_POST['lblQrTxt']) ? $_POST['lblQrTxt'] : '';

              $code =   $lblCode;
              $code = explode(":",$code); // code = array("QR Code","444444444|123")
              $code = explode("|",$code[1]); // code[1] = "444444444|123"
              $code = trim($code[0]); // 444444444


              $code2 =   $lblCode;
              $code2 = explode(":",$code2); // code = array("QR Code","444444444|123")
              $code2 = explode("|",$code2[1]); // code[1] = "444444444|123"
              $code2 = trim($code2[1]); // 123
            }


            ?>


              <div class="form-group">
                <label class="form-control-label">code</label>
                <input type="text" name="input" id="card-code" value='<?php echo $code ?>' class="form-control">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <label class="form-control-label">pin</label>
                <input type="text" id="card-pin" value='<?php echo $code2 ?>' class="form-control" maxlength="3">
              </div>

             <?php 


              if(isset($_POST['txtQrtxt']) && $_POST['txtQrtxt'] != '') {
                 echo "Text Present";
              } else {
                 echo "Text Not Present";
              }

              ?>

                        <div class="caption">

                        <div class="jumbotron">
                        <input type="text" name='txtQrtxt' value='Hello World' class="form-control" >

                        <textarea class="form-control text-center" id="scanned-QR" name="lblQrTxt"></textarea><br><br><br>

                         </div>

                        </div>


              </form>
              <div class="form-group float-right">
                <input value="Topup" class="btn btn-primary topup-button">

              </div>
            </div>
          </div>

        </form>


 <?php 

              $txtCodeqr  =  isset($_POST['txtQrtxt']) ? $_POST['txtQrtxt'] : '';
              if (!empty($txtCodeqr)) {
                echo "Text";
              } else {
                echo "Empty Textbox";
              }


               ?>

我的文本框

<input type="text" name='txtQrtxt' value='Hello World' class="form-control" >

【问题讨论】:

  • 值是如何发送到服务器的?请提供更完整的示例。
  • 它没有数据库先生\
  • @David,它是通过在文本框上输入值发送的,我只是检查它是否有值。
  • 假设该值正在发送到服务器。 PHP 会告诉您其他情况,而且这些事情通常是正确的。不要假设您的代码的其余部分正在工作,因为这可能是问题所在。提供问题的完整示例,以便我们为您提供帮助。否则我们所能做的就是假设您没有任何代码将值发送到服务器。
  • @obitouchiha:“我不需要使用提交按钮” - 你为什么这么认为?多次询问您如何将值提交给服务器,而您现在表明您不是。这真正解释了为什么没有将值提交给服务器。您的表单不完整,您从不提交。是时候回到 PHP 教程学习表单了。

标签: php forms input


【解决方案1】:

您可能过于复杂了。这很简单。

<?php

if(isset($_POST['txt']) && $_POST['txt'] != '') {
   echo "Text Present";
} else {
   echo "Text Not Present";
}
?>

此外,我建议您过滤发布或获取的所有输入。基本上任何从用户那里获取信息的东西。

在这里查看 - http://php.net/manual/en/function.filter-input.php

<?php

$my_txt = filter_input(INPUT_POST, 'txt');
if(isset($my_txt) && $my_txt != '') {
   echo "Text Present";
} else {
   echo "Text Not Present";
}
?>

您还需要在表单标签之间添加一个提交按钮。像这样。

<input type="submit" value="Submit">

此外,每个开始标签应该只有一个结束标签。这称为有效 HTML。

例如一个有效的表单是这样的

 <form method="post">
  First name:<br>
  <input type="text" name="firstname" value="Mickey"><br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse"><br><br>
  <input type="submit" value="Submit">
</form> 

【讨论】:

  • 先生,当它说 Text Not Present 时我试过了,尽管我有 Hello World 的值,即使我删除了文本框 Text Not Present 的值仍然存在: (为什么
  • 通过显示您的表格详细说明您的问题。这会有所帮助。
  • 您好先生我已经编辑了我的问题我添加了表格的完整代码和上面的输入请看一下非常感谢!
  • @obitouchiha:您的表单的“提交”按钮在哪里?你是怎么提交的?
  • 你没有提交按钮,你有两个 标签。
【解决方案2】:

好的,我制作了一个简单的 php 测试文件并测试了它的工作原理。你的问题是:

  1. 您没有提交按钮。如果您不先提交表单,则 $_POST 将不存在。

  2. 改用 javascript 验证您的文本区域会更容易。

这是我的测试文件,它可以工作:

<html>
<body>
<form method="POST">
<textarea name="txtQrtxt">
</textarea>

<input type="submit">
</form>

<?php

$var = $_POST['txtQrtxt'];

if (strlen($var)<=0) {
    echo "Textarea empty";
} else {
    echo "Textarea Okay";   

}


?>
</body></html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多