2016-07-04 10 views
0

ページを持つと私は、現在のURLのようにクエリを置くために私に「ジャンプ」メニューを提供し、次の?日= 2016から07設定]を選択し、リストのデフォルト値

<?php 
    $date = explode('-', $_GET['date']); 
    $year = $date[0]; 
    $month = $date[1]; 
?> 

<form> 
<select name="date" onchange="this.form.submit()"> 
<?php 
    for ($i = 0; $i <= 18; ++$i) { 
    $time = strtotime(sprintf('+%d months', $i)); 
    $value = date('Y-m', $time); 
    $label = date('F Y', $time); 
    printf('<option value="%s">%s</option>', $value, $label); 
    } 
    ?> 
</select> 
</form> 

を持っています私はデフォルト値として新しい日付を表示したい。私はあなたが選択リストに "値"属性を与えることでこれをしたと思ったが、それはうまくいきませんでした。これをさらに読むには、オプションの1つに「選択」を追加する必要があります。

URLの日付クエリと一致する場合、オプションのいずれかに「選択済み」を追加するにはどうすればよいですか?

+0

テストが – RiggsFolly

答えて

1
<?php 
    $date = explode('-', $_GET['date']); 
    $year = $date[0]; 
    $month = $date[1]; 
?> 

<form> 
<select name="date" onchange="this.form.submit()"> 
<?php 
    for ($i = 0; $i <= 18; ++$i) { 
    $time = strtotime(sprintf('+%d months', $i)); 
    $value = date('Y-m', $time); 
    $label = date('F Y', $time); 
    if(strcmp($value,$_GET['date']) == 0) 
     //If 0, $value and $_GET['date'] are the same: The option is selected 
     printf('<option value="%s" selected>%s</option>', $value, $label); 
    else 
     printf('<option value="%s">%s</option>', $value, $label); 
    } 
    ?> 
</select> 
</form> 
+1

パーフェクトは、あなたに感謝し、 '' $ _GET [ '日付'] == $の[値]であり、それは追加の場合は、 '選択= "選択します"! – Collins

1
$selected = ($value == $_GET['date']) ? 'selected' : ''; 
printf('<option value="%s" %s>%s</option>', $value, $selected, $label); 
関連する問題