duanemei2194 2017-08-21 10:25
浏览 21
已采纳

我从select到POST获取数据,即使使用了isset,它也无法正常使用条件语句?

I am fetching data from HTML written in my page and below this, I have my PHP code connected to an Oracle database on the same page. I am unable to check and compare the value rightly.

It's giving always false, I don't know why. I am able to resolve this using my chooseQuery variable as truthy/false but I want to know the reason of not working this condition. I think it may be only my server/machine related problem but I want to know the other reason if exists.

HTML Code:

<form action="" method="POST">
  <label for="chooseQuery">Choose Query :</label>
  <select name="chooseQuery" id="chooseQuery">
    <option value="" selected="selected">Choose one of the following to get data</option>
    <option value="Direct Approval Mod ID wise">Direct Approval Mod ID wise</option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
  </select>
  <label for="start_date">Start Date :</label>
  <input type="date" id="start_date" name="start_date" value="<?php echo date('Y-m-d',strtotime('-1 week')); ?>">
  <label for="end_date">End Date :</label>
  <input type="date" id="end_date" name="end_date" value="<?php echo date('Y-m-d');?>">
  <br>
  <input type="submit" value="Submit" name="submit">
</form>

PHP Code :

    if($con = $config->connectDB('imblrtR')){
    if(isset($_POST['submit'])){
      $chooseQuery = isset($_REQUEST['chooseQuery']) ? $_REQUEST['chooseQuery'] : '';
      $start_date = isset($_REQUEST['start_date']) ? $_REQUEST['start_date'] : '';
      $end_date = isset($_REQUEST['end_date']) ? $_REQUEST['end_date'] : '';
      echo "
".$chooseQuery;
      if($chooseQuery!=0 && $chooseQuery!='' && $chooseQuery!='0')
      {
        echo "ok";
        //getData($chooseQuery,$start_date,$end_date);
      }
      else{
        echo "Choose Right Option";
      }
      oci_close($con);
    }
  }
  else
  {
    echo "not connected

";
  }

This is always printing Choose Right Option even after showing $chooseQuery value as Direct Approval Mod ID wise.

  • 写回答

2条回答 默认 最新

  • douzi7711 2017-08-21 10:37
    关注

    Your $chooseQuery!=0 condition was not being met because when comparing a string with integer, PHP tries to convert that string to an integer. if it can't, then that string is evaluated as 0. so your condition $chooseQuery!=0 basically became 0!=0 which failed everytime.

    Change your conditional statement to below.

    if(!empty($chooseQuery))
      {
        echo "ok";
        //getData($chooseQuery,$start_date,$end_date);
      }
      else{
        echo "Choose Right Option";
      }**strong text**
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀