我有一个小问题。我无法过滤日期。 我不知道我是否遗漏了一些东西,但我无法过滤ZSC_b_date 我不是专业程序员,但仍然。寻求帮助。感谢。
这是HTML代码。
<form method="get" action="">
<select id="training_session" name="wb btn">
<option value="">Date</option>
<option value="April">April</option>
<option value="May">May</option>
<option value="June">June</option>
<option value="July">July</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="October">October</option>
<option value="November">November</option>
</form>
<input type="submit" value="Filter">
PHP代码
array(
'training_partner' => true,
'trainer_id' => 'alves',
'trainer_name' => 'Luciano Alves',
'training_company_link' => '#unirede',
'training_company_name' => 'Unirede Soluções Corporativas',
'city_country_link' =>
'city_country_name' => 'Porto Alegre, Brazil',
'training_language' => 'Portuguese',
'ZCS_b_date' => '24 November 2014',
'ZCS_e_date' => '26 November 2014',
'ZCS_link' =>
'ZLE_b_date' => '27 November 2014',
'ZLE_e_date' => '28 November 2014',
'ZLE_link' =>
),
);
if (isset($_GET['lang']) && $_GET['lang']) {
foreach ($training_sessions as $key => $session) {
if ($session['training_language'] !== $_GET['lang']) {
unset($training_sessions[$key]);
}
}
}
答案 0 :(得分:2)
&#34;我可以拥有Cheezburger&#34;是的,你的阵列没有正确写好。如果你不想要任何东西,你应该使用一个空字符串&#34; ZCS_link&#34; (虽然我不明白你为什么要那样做)。你忘了在那一行的末尾放一个昏迷,所以PHP现在很困惑;) 您的调试器是否已激活?
另外,您写了以下条件:
isset($_GET['lang'])
但我在HTML中看不到任何名为 lang 的元素,因此我认为这种情况永远不会成立,因此PHP无法运行验证。
更改
<select id="training_session" name="wb btn">
到
<select id="training_session" name="lang">
这样PHP知道$ _GET [&#39; lang&#39;]是为您的下拉列表提供的值。
答案 1 :(得分:0)
好的,有几件事:
避免在name
属性中使用空格,因此我们将其更改为:
<select id="training_session" name="wb_btn">
为您的提交按钮添加一个名称,并将其置于<form></form>
标记内
<input type="submit" name="filter_submit" value="Filter">
现在为你的PHP:
if (isset($_POST['filter_submit']) && isset($_GET['wb_btn']) && $_GET['lang']!='') {
foreach ($training_sessions as $key => $session) {
foreach($session as $k=>$v){
//this if checks for the date only in these keys,
//you can remove it if you want to check for all keys
if($k=='ZCS_b_date' || $k=='ZCS_e_date' || $k=='ZLE_b_date' || $k=='ZLE_e_date')
{
//e.g., check if 'december' is present in string '28 November 2014'
//it would be false, so remove it
if(stripos($v,$_GET['lang'])==false){
unset($training_sessions[$key][$k]);
}
}
}
}
}
<强> Demo 强>
我现在有一个问题如何在没有过滤器按钮的情况下制作它,这样 它只能在onclick上工作。我应该使用javascript吗?
是的,您可以使用onchange
标记的<select>
元素通过简单的javascript执行此操作,例如:
<select id="training_session" name="wb_btn" onchange="this.form.submit()">