2014-07-03 8 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

Try вторя $ значение – advermark

+1

Вы не можете использовать ' 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

Спасибо всем за их ответы, но этот сделал трюк. Спасибо, Сайд! – 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>