2017-05-16 13 views
0

私は今週と6週間のドロップダウンメニューを持っています。
は、これは私のPHPコードです:選択されたオプション:今週、PHP

$Timestamp = strtotime('this week'); 
$output1 = []; 
$output2 = []; 
$output = []; 

for ($week = 3; $week > 0; $week--) 
{ 
$output1[] = date('W Y', strtotime(sprintf('-%d weeks', $week), 
$Timestamp)); 
} 

for ($week = 0; $week < 4; $week++) 
{ 
$output2[] = date('W Y', strtotime(sprintf('+%d weeks', $week), 
$Timestamp)); 
} 

$output = array_merge($output1, $output2); 

そして、私はこのHTML(PHP)コードがあります。

<select name="weeks"> 
<?php foreach ($output as $week) : ?> 
    <option value="<?php echo $week ?>"> 
    <?php echo 'Week ' . $week ?></option> 
<?php endforeach; ?> 
</select> 

このコードは、上記の完璧な作品を。

私がしたいのは、属性 'selected'を与える​​ことです。だから、私がページを開くとき、私は私の目の前にある一週間を見ます。 これは私が私のHTML(PHP)コードを変更し、私が試したものです:私はこのコードを実行すると、それが唯一の選択週20(今週)に私のオプションを提供します

<select name="weeks"> 
<?php foreach ($output as $week) : ?> 
    <option value="<?php echo $week ?>" 
    <?php 
    $weekToday = date('W'); 
    if ($week = $weekToday) 
    { 
     echo 'selected'; 
    } 
    ?>> 
    <?php echo 'Week ' . $week ?></option> 
<?php endforeach; ?> 
</select> 

。しかし、値の出力は良いです。
私は間違って何をしましたか、正しい出力を得るためには何を変更する必要がありますか?

+3

'='は代入演算子、いない比較演算子です。 – CBroe

答えて

0

問題はここにある:

if ($week = $weekToday) 
{ 
    echo 'selected'; 
} 

比較は==を使用して行うことができない=

+0

これは表示には使えましたが、今週はまだ選択されていません –

+0

あなたのオプションの値にも年が含まれていて、 'weekToday'変数が含まれていないからです。' $ weekToday = date( 'W Y') ; ' – DarkBee

+0

@DarkBee良い点 –

関連する問題