echo默认选择值

时间:2015-05-04 21:51:22

标签: php html

问题

我正在处理的当前脚本有一个表单来获取位置,然后在提交并确认没有错误之后,它将允许用户在将其更新到数据库之前可以使用下一个按钮。 / p>

这样做的主要原因是更新地图,让用户有机会在继续之前改变主意。

问题是,我想保留他们已提交的数据。通过这样做

                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Country</label>

                                <select class="form-control" name="country" value=<?php if (isset($_POST['locate'])) { echo '"'.$_POST['country'].'"'; } else { echo '""'; } ?> required>
                                    <?php include('includes/country_list.php');?>
                                </select>
                            </div>

                            <div class="form-group">
                                <label>Address</label>
                                <div>
                                    <input type="text" value=<?php if (isset($_POST['locate'])) { echo '"'.$_POST['address'].'"'; } else { echo '""'; } ?> class="form-control" data name="address" data-parsley-required="true" placeholder="First line address, postcode, zip code etc.." data-parsley-trigger="change">
                                </div>
                            </div>                                

                            <div class="form-group">
                                <label>Site Name</label>
                                <div>
                                    <input type="text" value=<?php if (isset($_POST['locate'])) { echo '"'.$_POST['site_name'].'"'; } else { echo '""'; } ?> class="form-control" data name="site_name" data-parsley-required="true" placeholder="//example: Fawley Refinery, Cottam Powerstation.." data-parsley-trigger="change">
                                </div>
                            </div>
                        </div>

问题是,我不想触摸country_list.php我想在部件中选择默认值。但是,我目前使用的东西不起作用。

2 个答案:

答案 0 :(得分:2)

您根本不需要使用javascript来执行此操作:

<select class="form-control" name="country" required>
    <?php include('includes/country_list.php');?>
</select>

然后在country_list.php中,您只需检查每个国家/地区是否等于$_POST['country']中的值。我不知道你是如何格式化它的,但我猜你是在循环一系列国家名称。如果没有,也许你应该!尝试这样的事情:

foreach ($countries as $country) {
    echo "<option value='$country' ";
    if (!empty($_POST['country'] && $_POST['country'] == $country)) {
        echo 'selected="selected"';
    }
    echo ">$country</country>";
}

答案 1 :(得分:0)

  

问题是,我不想触摸country_list.php我想在部件中选择默认值。但是,我目前使用的东西不起作用。

为了满足您不修改PHP包含的要求,您需要JS ...以下内容应该有效。

注意:我将值属性data-value设为有效的HTML:

<select class="form-control" name="country" data-value=<?php if (isset($_POST['locate'])) { echo '"'.$_POST['country'].'"'; } else { echo '""'; } ?> required>
    <?php include('includes/country_list.php');?>
</select>

然后,在JS中,使用jQuery,你可以做到:

$(document).ready( function() {
    var $select = $('select[name=country]'),
        value   = $select.data('value')
    ;
    $select.val(value);
} );