Mohammed Alsaiari Mohammed Alsaiari -4 years ago 93
HTML Question

save previous value from posted select

I am having problem passing two select to $_POST

i have two select and when i post from the first the value is not been saved ,so when i post from the second select doesn't remember the first select value ,I want to pass the first select and save the value to select.

<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>


and i am using jquery to submit the form in change
when first form submitted select does not save the value of the selected option

$(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();
});


});

Answer Source

I noticed you were missing some commas and that you didn't pass any data. Try this instead.

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

Also, you should be able to get the value of a select via val() e.g. $("#city").val().

For normal submit:

<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>
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download