【问题标题】:PHP array not showing select list in HTMLPHP数组未在HTML中显示选择列表
【发布时间】:2014-08-24 02:51:01
【问题描述】:

我有一个包含状态列表的数组,我试图让它显示在我的选择列表中。我没有收到任何错误,但选择列表中没有显示任何选项。我只是想让它循环遍历数组并在 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;

我的语法错了吗?任何帮助将不胜感激。

【问题讨论】:

  • 你不能在字符串中使用&lt;?php,它只能在你在PHP脚本之外使用,才能回到PHP执行模式。

标签: php html arrays loops variables


【解决方案1】:

是的,语法有问题,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;

【讨论】:

  • 感谢大家的回答,但这个成功了。谢谢赛义德!
【解决方案2】:

存在一些语法问题,但我已为您解决了。

<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>

【讨论】:

    【解决方案3】:

    试试这个:

    <?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;
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-05-11
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 2012-12-07
      相关资源
      最近更新 更多