2013-01-15 40 views
0

我加載像這樣笨問題與循環和條件

if($type == 'view'){ 
// do something 
}else if($type == 'insert'){ 
    // Here i am making a form 
?> 
    <select> 
    <?php 
     foreach($applications as $row) 
     { 
      ?> 
      <option value = "<?php echo $row->id;?>"> 
       <?php echo $row->name;?> 
      </option> 
     <?php } ?> 
    </select> 
<? 
}else{ 
    //do some thing else 
} 

視圖現在,這就是我遇到的錯誤:

解析錯誤:語法錯誤,在URL意外T_ELSE上線XX

奇怪的是,如果我如果工作正常註釋掉循環。問題是什麼?如何解決?

+0

你介意粘貼整個代碼片段並告訴我們錯誤發生在哪一行嗎?我剛剛執行了你發佈的代碼,但我沒有收到語法錯誤,所以它可能是由你沒有發佈的代碼中的其他內容引起的。 – 9ee1

+0

它對我來說也很好... – hsuk

+0

您的服務器上是否啓用了短標籤?我注意到有時使用'<?'和其他時間'<?php'來打開你的php標籤。應該堅持使用一個:) – Jeemusu

回答

0

需要笨鑑於方式循環使用是這樣的:

<?php foreach ($applications as $row):?> 
    <option value = "<?php echo $row->id; ?>"> 
        <?php echo $row->name; ?> 
       </option> 
    <?php endforeach;?> 
+0

這項工作?我使用{}編寫for循環,並且在codeigniter的視圖中從未遇到過使用它們的問題... – Jeemusu

+0

當然可以。 –

+0

但它爲什麼會起作用,而不是使用其他格式的foreach? – Jeemusu

0

它工作正常,我......再試一次

<?php 

if($type == 'view'){ 
// do something 
}else if($type == 'insert'){ 
    // Here i am making a form 
?> 
<select> 
    <? 
    foreach($applications as $row){ 
    ?><option value = "<?php echo $row->id;?>"><?php echo $row->name;?></option> 
    <?php 
    } 
    ?> 
</select> 
<? 
}else{ 
    //do some thing else 
} 
0

也許你想這樣的代碼:

<?php 
if ($type == 'view') 
{ 
    // do something 
} 
elseif ($type == 'insert') 
{ 
    // Here i am making a form 
?> 
    <select> 
<?php 
    foreach($applications as $row) 
    { 
?> 
    <option value = "<?php echo $row->id;?>"><?php echo $row->name;?></option> 
<?php 
    } 
?> 
    </select> 
<?php 
} 
else 
{ 
    //do some thing else 
} 
?> 
+1

這是不正確的。 'else if'和'elseif'在使用大括號時將被解析器視爲相同。他正在使用大括號。 – 9ee1

+0

是的,我已經測試了它 –

+0

對不起,是的,你是否正確與'else if'和'elseif',那麼爲什麼你的代碼不工作? – Reinstar

0

使用開關,你有代碼的編寫,當然還有一個更優雅的方式速度,請嘗試:

switch($type){ 
case 'view': 
    //do something 
break; 

case 'insert': 
    echo '<select>'; 
    foreach($applications as $row){ 
     echo '<option value="'.$row->id.'">'.$row->name.'</option>'; 
    } 
    echo '</select>'; 
break; 

default: 
    //do something else 
break; 
}