Javascript 使用Jquery/JS通过API填充表单,需要设置返回post值
我已经集成到通过Jquery填充的第三方交付服务中Javascript 使用Jquery/JS通过API填充表单,需要设置返回post值,javascript,php,jquery,Javascript,Php,Jquery,我已经集成到通过Jquery填充的第三方交付服务中 [town] -> dropdown [suburb] -> dropdown 页面加载时,所有选定元素均为空。当用户选择城镇时,它会填充郊区 现在,在向服务器发送邮件并返回错误的情况下,我希望通过向正确的下拉值添加select元素,将表单设置为发送表单的状态 例如,用户选择town_ID5和郊区_ID105,表单被发布,并由于错误而返回。在这一点上,我希望以价值5填充城镇,以价值105填充郊区 HTML代码: <div c
[town] -> dropdown
[suburb] -> dropdown
页面加载时,所有选定元素均为空。当用户选择城镇时,它会填充郊区
现在,在向服务器发送邮件并返回错误的情况下,我希望通过向正确的下拉值添加select元素,将表单设置为发送表单的状态
例如,用户选择town_ID5和郊区_ID105,表单被发布,并由于错误而返回。在这一点上,我希望以价值5填充城镇,以价值105填充郊区
HTML代码:
<div class="form-group col-md-6">
Your town<span class="require">*</span>
<select name="town_id" id="mds_towns">
<option value="">Select your town</option>
<option value="2">Town1</option>
<option value="3">Town2</option>
<option value="4">Town3</option>
</select>...
<div class="form-group col-md-6">
Your town<span class="require">*</span>
<select name="suburb_id" id="mds_towns">
<option value="">Select your suburb</option>
<option value="2">Suburb1</option>
<option value="3">Suburb2</option>
<option value="4">Suburb3</option>
</select>...
你的城市*
选择你的城镇
镇1
镇2
镇3
...
你的城市*
选择你的郊区
郊区1
郊区2
郊区3
...
我不是jquery专家,我正在为如何在回帖中获得正确值的概念而挣扎
我的一个想法是在每个表单字段中都有一个特殊的span元素,例如:
<span id="suburb_value" value="105"> <-----------------*** ADD THIS ***
<div class="form-group col-md-6">
Your town<span class="require">*</span>
<select name="suburb_id" id="mds_towns">
<option value="">Select your suburb</option>
<option value="2">Suburb1</option>
<option value="3">Suburb2</option>
<option value="4">Suburb3</option>
</select>...
<script>
$(function(){
var town_id, suburb_id = false;
// Here we assign values to these JS variables if they come through via PHP's $_REQUEST.
<?php echo (!empty($_REQUEST['town_id']) ? 'town_id = '.intval($_REQUEST['town_id']).';' : '') ?>
<?php echo (!empty($_REQUEST['suburb_id']) ? 'suburb_id = '.intval($_REQUEST['suburb_id']).';' : '') ?>
// Here we make the correspondings dropdown options selected, if needed.
if (town_id !== false) {
$('select[name=town_id] option[value='+ town_id +']').attr('selected', 1);
}
if (suburb_id !== false) {
$('select[name=suburb_id] option[value='+ suburb_id +']').attr('selected', 1);
}
});
</script>
试试这个:
<script>
$(document).ready(function() {
var townId = <?= (isset($_POST['town_id'])) ? (int) $_POST['town_id'] : 0; ?>,
suburbId = <?= (isset($_POST['suburb_id'])) ? (int) $_POST['suburb_id'] : 0; ?>;
if (townId > 0 || suburbId > 0) {
// make your api call here with townId and suburbId
}
});
</script>
$(文档).ready(函数(){
var townId=,
郊区=;
如果(城镇ID>0 | |郊区>0){
//使用townId和suburbId在此处进行api调用
}
});
如果我理解正确,您只需在提交时重新加载页面后在下拉列表中保留所选值即可。在本例中,使用jQuery可以尝试以下操作:
<span id="suburb_value" value="105"> <-----------------*** ADD THIS ***
<div class="form-group col-md-6">
Your town<span class="require">*</span>
<select name="suburb_id" id="mds_towns">
<option value="">Select your suburb</option>
<option value="2">Suburb1</option>
<option value="3">Suburb2</option>
<option value="4">Suburb3</option>
</select>...
<script>
$(function(){
var town_id, suburb_id = false;
// Here we assign values to these JS variables if they come through via PHP's $_REQUEST.
<?php echo (!empty($_REQUEST['town_id']) ? 'town_id = '.intval($_REQUEST['town_id']).';' : '') ?>
<?php echo (!empty($_REQUEST['suburb_id']) ? 'suburb_id = '.intval($_REQUEST['suburb_id']).';' : '') ?>
// Here we make the correspondings dropdown options selected, if needed.
if (town_id !== false) {
$('select[name=town_id] option[value='+ town_id +']').attr('selected', 1);
}
if (suburb_id !== false) {
$('select[name=suburb_id] option[value='+ suburb_id +']').attr('selected', 1);
}
});
</script>
$(函数(){
var town\u id、郊区\u id=假;
//在这里,如果这些JS变量通过PHP的$\u请求传递,我们将为它们赋值。
//在这里,如果需要,我们选择相应的下拉选项。
如果(城镇标识!==假){
$('select[name=town_id]option[value='+town_id+']')。attr('selected',1);
}
如果(U id!==false){
$('select[name=郊区id]option[value='+郊区id+']')。attr('selected',1);
}
});
更优雅的方法是在通过PHP输出页面时预先选择选项,但如果不知道应用程序的结构,很难在这方面提出任何建议