【问题标题】:Text field data not passing properly in form POST method文本字段数据未在表单 POST 方法中正确传递
【发布时间】:2015-03-31 18:07:44
【问题描述】:

我正在为我的公司使用 HTML 和 PHP 处理数字就业申请。

表单定义为:<form method="post" action="./php/post.php" name="empapp">,文本字段定义为:<input size="13" name="canyoufeelityeah">

我的 PHP 页面包含以下行: `print_r($_POST); print_r($_POST["canyoufeelityeah"]);

    if  (($_POST["canyoufeelityeah"] = ' ') or ($_POST["initials2"] = ' ') or ($_POST["initials3"] = ' ') or ($_POST["initials4"] = ' ') or ($_POST["signature"] = ' '))  
    {
        echo $_POST["canyoufeelityeah"]."|".$_POST["initials2"]."|".$_POST["initials3"]."|".$_POST["initials4"]."|".$_POST["signature"]."|";
        echo "You must initial each of the 4 blocks and sign your name at the bottom. <br />You will be redirected to your application in 15 seconds...";
       // echo "<script>setTimeout(\"window.history.back()\", 1500)</script>";
    }`

所有 $_POST 变量的打印显示变量“canyoufeelityeah”的值,但这部分代码总是拉个空白。

有人可以帮忙吗?我还有大约 30 个其他变量正在传递,但这是唯一一个给我带来任何问题的变量,我不知道为什么。

谢谢!

【问题讨论】:

  • 如果条件不是=(单相等),它应该是==(双相等)
  • 谢谢大家。我会尝试并回复你。
  • 我尝试将其更改为比较运算符 (==),但现在代码没有像应有的那样从网页中捕获丢失的数据。之前一直在抓它,只是找不到一个字段(canyoufeelityeah)。
  • 你应该在所有=的if条件下使用==
  • 更新的代码 sn-p 不起作用:if (($_POST["canyoufeelityeah"] == ' ') or ($_POST["initials2"] == ' ') or ($_POST["initials3"] == ' ') or ($_POST["initials4"] == ' ') or ($_POST["signature"] == ' '))

标签: php html forms


【解决方案1】:

试试这个。

if  (empty($_POST["canyoufeelityeah"]) or empty($_POST["initials2"]) or empty($_POST["initials3"]) or empty($_POST["initials4"]) or empty($_POST["signature"]))
    {
        echo $_POST["canyoufeelityeah"]."|".$_POST["initials2"]."|".$_POST["initials3"]."|".$_POST["initials4"]."|".$_POST["signature"]."|";
        echo "You must initial each of the 4 blocks and sign your name at the bottom. <br />You will be redirected to your application in 15 seconds...";
        // echo "<script>setTimeout(\"window.history.back()\", 1500)</script>";
    }

【讨论】:

  • 谢谢!这正是我所需要的!
【解决方案2】:

您在 if 语句中使用的是 assignment 而不是 comparison

你写道: ($_POST["canyoufeelityeah"] = ' ')

应该是: ($_POST["canyoufeelityeah"] == ' ')

【讨论】:

    【解决方案3】:

    试试这个,我想你忘记了'=='

    if  (($_POST["canyoufeelityeah"] == ' ') or ($_POST["initials2"] == ' ') or ($_POST["initials3"] == ' ') or ($_POST["initials4"] == ' ') or ($_POST["signature"] == ' '))  
        {
            echo $_POST["canyoufeelityeah"]."|".$_POST["initials2"]."|".$_POST["initials3"]."|".$_POST["initials4"]."|".$_POST["signature"]."|";
            echo "You must initial each of the 4 blocks and sign your name at the bottom. <br />You will be redirected to your application in 15 seconds...";
           // echo "<script>setTimeout(\"window.history.back()\", 1500)</script>";
        }`
    

    【讨论】:

      猜你喜欢
      • 2012-11-02
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多