2011-08-01 11 views
0

私はこれを行う方法について私の頭を包んで苦労しています...私はデフォルトで表示したい選択メニューと、特定の項目ショッピングカートに表示されます。PHPで適切なif文を書き込もうとしています

だから、私は犬と車を売ると言う。カートの中で私はそれぞれの1つを選択しました。カートに車があると、選択メニューが表示されます。しかし、カートや猫に犬がいれば、私は別の選択肢が出てくるようにしたい。カートに何かが入っているとcar_selectがデフォルトになります(私はたくさんのものを販売しています)が、カートに犬が現れたらdog_selectがそれを置き換えます。

今書いているとおりです。デフォルトは最後のもので、それは何を示しています。

<?php 
foreach($this->rows as $i => $row){ 

if (strstr('dogs',$row->dates)) { 
$mydates = 'dogs'; 
} else {$mydates='default';} 


//echo $row->dates; this spits out the correct values dogcar 


} 
//echo $mydates; with a dog and a car in the cart this returns default 
//below functions i believe but i think the above is faulty 
?> 
<?php 
if ($mydates =='dogs'){ 
//do something here;} else { 

    $type = $this->type; 
    foreach($this->extraFields[$type] as $fieldName => $oneExtraField) { 
    if ($fieldName != 'pickupdate-rosh'){; ?> 
     <tr class="hikashop_checkout_<?php echo $fieldName;?>_line"> 
      <td class="key"> 
       <?php echo $this->fieldsClass->getFieldName($oneExtraField);?> 
      </td> 
      <td> 
       <?php 

         echo $this->fieldsClass->display($oneExtraField,$this->$type->$fieldName,'data['.$type.']['.$fieldName.']'); 
       ?> 
      </td> 
     </tr> 
<?php } ?> 
    <?php } ?> 
<?php } ?> 

私は常に、カート内の犬や猫などの存在しない限り、car_selectを返したい:

のでコード(私のコメントを参照してください)。 {編集:文字列を探すのに正しい関数ではないことが分かりました}

答えて

2

$mydatesのように設定しています(潜在的に)。これは、ループのforeachループのすべての反復で1つの変数を1つの結果に設定し、最後の反復が最終変数の値になるためです。

したがって、$mydatesをデフォルトに設定し、条件が正しければ変更してください。

$mydates='default'; 
foreach($this->rows as $i => $row){ 
    if (strstr('dogs',$row->dates)) { 
     $mydates = 'dogs'; 
    } 
    //echo $row->dates; this spits out the correct values dogcar 
} 
+0

私はいつもループで混乱します!他の質問:もし私が '犬'が実際に別の動物の配列を表現したければ、あなたは別のforeachでそれをやりますか? – liz

+0

ええ、これは通常、Doh!*の瞬間です。あなたの2番目の質問については、私があなたがやろうとしていることに従うかどうかはわかりません。 –

+0

よく私は犬を探します。私は実際には5つの異なる用語を探しています...私は配列(犬、猫、鳥)を作って、複数の検索を行います。私はそれを書く良い方法かもしれないと思った? – liz

関連する問題