问题
我正在处理的当前脚本有一个表单来获取位置,然后在提交并确认没有错误之后,它将允许用户在将其更新到数据库之前可以使用下一个按钮。 / 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我想在部件中选择默认值。但是,我目前使用的东西不起作用。
答案 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);
} );