在表单中更改国家/地区时创建备用州/地区/县字段

时间:2015-02-19 21:17:59

标签: php jquery ajax forms

我刚刚注意到付款表单中存在严重错误。当某人从选择字段更改其国家/地区时,它会自动将“县”文本字段替换为“州”选择框(如果国家/地区=美国)或“地区”选择框(如果国家/地区=加拿大)。这是通过ajax完成的。

$('#billing_country').change(function(){
    if($(this).val()==223) {
        $.ajax({        
            type    : 'POST',
            url     : '//localhost/mslv2/ajax/states.php',
            data    : 'type=billing',
            success : function(data) {
                $("#billing_country_div").html(data);
            }
        }); 
    };
});

states.php文件

$states = '<label for="'.$_POST['type'].'_county">State*</label>
<select name="'.$_POST['type'].'_county">
<option value="0" selected="selected">Select a State</option>';
$state_qry = mysqli_query($con,"SELECT `zone_code`,`zone_name` FROM `zones` WHERE `zone_country_id`=223");
while($state_row = mysqli_fetch_assoc($state_qry)) {
    $states .= '<option value="'.$state_row['zone_code'].'">'.$state_row['zone_name'].'</option>';
}
$states .= '</select>';
echo $states;

所以我注意到,当表单提交时,因为字段是即时进入的,所以当表单提交时,它们不会被拾取,从而产生错误。

我认为的一个解决方案是加拿大被选中,然后我可以刷新页面,但后来我仍然无法思考如何将其传递给php代码,以便知道显示加拿大领土。

另一个解决方案是保持

<input type="text" id="billing_county" name="billing_county" value="<?php echo $billing_county; ?>" />

文本字段,然后隐藏它,然后显示这些选择框,并将其值更新到文本字段中,这应该有效。但我想知道是否有一个更简单的解决方案。

0 个答案:

没有答案