【问题标题】:How to POST an empty option in a form如何在表单中发布一个空选项
【发布时间】:2018-05-09 12:56:43
【问题描述】:

我的表单中有各种表单字段,但是它们都要求用户能够提交一个空值。以下始终是第一个选项的文本。

我怎样才能让它 POST 的 value=""

<select class="form-control" name="type">
  <option value="" hidden>All</option>
  <option value="Apartment">Apartment</option>
  <option value="Villa">Villa</option>
  <option value="Hotel">Hotel</option>
</select>

如果我转储$ _post ['类型']我会在没有选项时获取“全部”。我需要它是空的。

更新:添加 PHP 函数

/*****************
Setup the type filter
*****************************/
if (!$_POST['type'] == '') { 

  $type = $_POST['type']; 
  $type_query = array(       
    'meta_key'  =>  'type_name',
    'value'     =>  array($type)              
  );
  array_push($meta_query, $type_query);        
  $_SESSION['type'] = $type;

} elseif(isset($_SESSION['type'])) { 

  $type = $_SESSION['type']; 
  $type_query = array(       
    'meta_key'  =>  'type_name',
    'value'     =>  array($type)           
  );
  array_push($meta_query, $type_query);
}  



//POST dump

Array
(
    [type] => All
    [location] => All Locations
    [bedfrom] => 
    [bedto] => 
    [ref] => 
    [issearch] => 1
)

//SESSION dump

Array
(
    [location] => All Locations
    [type] => All
)

【问题讨论】:

  • 为什么要POST 一个空值?如果您不需要向服务器发送任何POST 任何内容,GET 请求不会正常工作吗?
  • i.imgur.com/j0tXV8X.png — 我无法重现该问题。
  • 为什么不通过 value="All" 然后相应地更改服务器脚本? - 我什至不认为你可以在一个选项上有一个隐藏的属性
  • 你是用ajax发送表单吗?
  • 只是提示if (!$_POST['type'] == '') 可以这样写if ( !empty($_POST['type']) )

标签: html forms


【解决方案1】:
<select class="form-control" name="type">
  <option value="" hidden>All</option>
  <option value="Apartment">Apartment</option>
  <option value="Villa">Villa</option>
  <option value="Hotel">Hotel</option>
</select>

if (isset($_POST['type']) ) { 
    $type = $_POST['type']; 
} elseif(isset($_SESSION['type'])) { 
     $type = $_SESSION['type']; 
}

$meta_query = [];
if(isset($type))//type == '' which means its set 
{
    $type_query = array(       
        'meta_key'  =>  'type_name',
        'value'     =>  array($type)              
    );
    array_push($meta_query, $type_query);
}
print_r($meta_query);

【讨论】:

  • 当没有选择任何选项时,这仍然是 POST 的全部。
  • 输出:数组([0] => 数组([meta_key] => type_name [value] => 数组([0] =>)))
  • 数组([类型] =>)
  • 放一个 print_r($_POST)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 2015-02-22
  • 2016-04-30
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多