2014-07-03 33 views
0

我有一個包含狀態列表的數組,我試圖讓它顯示在我的選擇列表中。我沒有收到任何錯誤,但沒有任何內容顯示在選擇列表中作爲選項。我只是試圖讓它遍歷數組並在HTML中顯示狀態。PHP數組沒有顯示HTML中的選擇列表

function statesList() { 
$states = array('AL'=>"Alabama", 
       'AK'=>"Alaska", 
       'AZ'=>"Arizona", 
       'AR'=>"Arkansas", 
       'CA'=>"California", 
       'WY'=>"Wyoming"); 
return $states; 
} 

$email_form = '<?php $states = statesList(); ?> 
<form class="aw-contact-form" method="post" action="' . get_permalink() . '"> 
     <label for="cf_state">' . $label_state . '</label> 
      <select name="state" id="cf_state"> 
       <option selected="selected"></option> 
       <?php foreach($states as $key=>$value) { ?> 
       <option value="<?php echo $key; ?>"><?php $value; ?></option> 
       <?php } ?> 
      </select> 
</form>'; 

return $email_form; 

我的語法錯了嗎?任何幫助將不勝感激。

+1

嘗試呼應$價值 – advermark

+1

不能使用'<?php'在字符串中,它只能當你的PHP腳本之外使用,重新進入PHP執行模式。 – Barmar

回答

2

是的語法有問題,foreach被放在字符串內部,所以它被解析爲一個字符串而不是php代碼來執行。 $ states也是空的,因爲它被放置在函數之外。要獲得$ states的值,你必須調用函數。 這是固定的版本:

function statesList() { 
$states = array('AL'=>"Alabama", 
       'AK'=>"Alaska", 
       'AZ'=>"Arizona", 
       'AR'=>"Arkansas", 
       'CA'=>"California", 
       'WY'=>"Wyoming"); 
return $states; 
}  


$email_form = '<form class="aw-contact-form" method="post" action="' . get_permalink() . '"> 
     <label for="cf_state">' . $label_state . '</label> 
      <select name="state" id="cf_state"> 
       <option selected="selected"></option>'; 

$states = statesList(); 
foreach ($states as $key => $value) { 
    $email_form .= '<option value="' . $key . '">' . $value . '</option>'; 
} 
$email_form .= '</select> 
</form>'; 

return $email_form; 
+0

感謝大家爲他們的答案,但這一個伎倆。感謝Syed! – Justin

+0

歡迎您:) –

1

試試這個:

<?php 
error_reporting(0); 
function statesList() { 
$states = array('AL'=>"Alabama", 
       'AK'=>"Alaska", 
       'AZ'=>"Arizona", 
       'AR'=>"Arkansas", 
       'CA'=>"California", 
       'WY'=>"Wyoming"); 
return $states; 
} 
$states = statesList(); 
$email_form .= '<form class="aw-contact-form" method="post" action="' . get_permalink() . '"> 
       <label for="cf_state">' . $label_state . '</label> 
       <select name="state" id="cf_state"> 
       <option selected="selected"></option>'; 
       foreach($states as $key=>$value) { 
       $email_form .= '<option value="'.$key.'">'.$value.'</option>'; 
       } 
      $email_form .= '</select> 
      </form>'; 

return $email_form; 

?> 
1

有幾個語法問題,但我清理起來給你。

<html> 
<head> 
<title>Online PHP Script Execution</title> 
</head> 
<body> 
<?php 
function statesList() { 
$states = array('AL'=>"Alabama", 
       'AK'=>"Alaska", 
       'AZ'=>"Arizona", 
       'AR'=>"Arkansas", 
       'CA'=>"California", 
       'WY'=>"Wyoming"); 
return $states; 
} 

$email_form = ($states = statesList()); 
?> 
<form class="aw-contact-form" method="post" action="hello.php"> 
     <label for="cf_state"><?php echo $label_state ?> </label> 
      <select name="state" id="cf_state"> 
       <option selected="selected"></option> 
       <?php foreach($states as $key=>$state) { ?> 
       <option value="<?php echo $key; ?>"><?php echo $state; ?></option> 
       <?php } ?> 
      </select> 
</form> 
<?php 
return $email_form; 
?> 
</body> 
</html>