保存已发布选择的先前值

时间:2017-03-22 22:34:47

标签: javascript php jquery html forms

我遇到问题,将两个选择传递给$ _POST

我有两个选择,当我从第一个发布时,该值未被保存,所以当我从第二个选择发布时不记得第一个选择值,我想传递第一个选择并保存要选择的价值。

<form method="post" action="index.php">
<select id="city" name="city" class="styled-select">
<option value="all" selected="selected">all</option>
<option value="Van">Vancouver</option>
<option value="vic">Victoria</option>
</form>

<form method="post" action="index.php">
<select id="dept" name="dept" class="styled-select">
<option value="all" selected="selected">all</option>
<option value="1">First</option>
<option value="2">Second</option>
</form>

我正在使用jquery提交表单 当第一个表单提交时,select不会保存所选选项的值

$(document).ready(function() {

$('#city').change(function() {

           $(this).find("option[selected='true']").removeAttr('selected');

           $(this).find('option:selected').attr('selected', 'true');

           this.form.submit();
});
$('#dept').change(function() {

           $(this).find("option[selected='true']").removeAttr('selected');

           $(this).find('option:selected').attr('selected', 'true');

           this.form.submit();
});


});

1 个答案:

答案 0 :(得分:1)

我注意到你遗漏了一些逗号并且没有传递任何数据。试试这个。

$("#city").change(function()
{ 
        var selected = $("#city").find(':selected').val(); 
        $.ajax({ 
            url: "index.php", 
            type: 'POST',
            data: {
                "city": selected
            },
            success: function(data) { 
                console.log("success");
            } 
        }); 
});

此外,您应该可以通过val()获取选择的值,例如$("#city").val()

正常提交:

<form method="post" action="index.php">
<select id="city" name="city" class="styled-select">
<option value="all" <?php echo $_POST['city']==="all" ? "selected" : "" ?>>all</option>
<option value="Van" <?php echo $_POST['city']==="Van" ? "selected" : "" ?>>Vancouver</option>
<option value="vic" <?php echo $_POST['city']==="vic" ? "selected" : "" ?>>Victoria</option>
</form>