我有一个数组的状态列表,我试图让它出现在我的选择列表。我没有得到任何错误,但没有什么是显示在选择列表作为一个选项。我只是想让它循环遍历数组并在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;
我的语法有问题吗?任何帮助都将不胜感激。
是的语法有问题,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;
有一些语法问题,但我为您清理了它们。
<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>
试试这个:
<?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;
?>