【问题标题】:Form selector failing $_POST['medalCount'] !== '' test表单选择器失败 $_POST['medalCount'] !== '' 测试
【发布时间】:2017-02-27 03:51:55
【问题描述】:

在我的帖子表单中,我有一个选择器供用户选择奖牌数量。在我的getSearchFields() 函数中,如果选择器不为空(即选择器不在 Select Medal Count 上),则该函数完成任务 1。但是,选择器未通过 $_POST['medalCount']!== '' 测试并正在执行任务 1。@ 987654323@ 是字符串类型。我该如何解决这个问题?

<form action="index.php" method="post" name="search">
<select name="medalCount">
    <option value=0 selected> Select Medal Count </option>
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
    <option value=6>6</option>
</select>
</form>

index.php...

function getSearchFields(){
   if($_POST['medalCount']!== ''){
      //Task 1
      $search_fields['medalCount'] =$_POST['medalCount'];

   }
}

【问题讨论】:

  • 没有 &lt;?php .... ?&gt; 标记...您正在尝试混合使用 JavaScript 和 PHP,这将永远行不通。
  • 你的表单怎么会为medalCount 提交一个空字符串值(提示:不能)?
  • @mickmackusa 没有评论说,所以我不确定你为什么要添加它:/
  • @Phil 他们暗示 RTM,但也许我怀疑这是否是一个错字。
  • @Phil 现在说得通了哈哈!编辑解决了它

标签: php forms http-post


【解决方案1】:

改变这个

<option value=0 selected> Select Medal Count </option>

到这里

<option value="" selected> Select Medal Count </option>

由于所有&lt;option&gt; 元素都具有非空的value 属性,您将永远不会(通常)在$_POST['medalCount'] 中收到空字符串值,而$_POST['medalCount']!== ''始终为真。

【讨论】:

  • 我按照你的方法做了,只是我用了单引号&lt;option value='' selected&gt; Select Medal Count &lt;/option&gt;,而且效果很好
  • @15ongm 引号的类型通常无关紧要(除非您尝试根据 DTD 验证文档)
【解决方案2】:

此行错误$_POST['medalCount']!== '',您需要尝试$_POST['medalCount']!= 0。由于您的选择器空值为0

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多