Ich denke, Sie versuchen, die Optionen zum Auffüllen von $mens
zu erhalten Array:
<?php foreach($mens as $row){?>
<option value="<?php echo $row['gender'] ?>"><?php echo $row['name'] ?></option>
<?php }?>
Wenn Sie dies nicht meinen, müssen Sie möglicherweise näher darauf eingehen.
BEARBEITEN 1:
Wenn Sie eine große Liste von Elementen haben, aus denen Sie schöpfen können, sollten Sie Ajax verwenden, aber wenn Ihre Stichprobe relativ klein ist, können Sie möglicherweise einfach ein Array verwenden, um daraus zu schöpfen.
DEMO: https://jsfiddle.net/z50m5hnz/ :
<select name="category" id ='category' style="background:transparent">
<option id ='gender' hidden="hidden">Gender</option>
<option value="men">Men's</option>
<option value="girl">Ladies</option>
</select>
<select name="items" id="items">
<select>
<script type="text/javascript">
var dropdown_items = <?php echo json_encode($mens) ?>;
$(function () {
$("#category").change(function () {
var selectedText = $(this).find("option:selected").text();
var selectedValue = $(this).val();
var opts = [];
$.each(dropdown_items,function(k,v){
if(selectedValue == 'men' && v.gender == 0) {
opts.push('<option name="'+v.gender+'">'+v.name+'</option>');
}
else if(selectedValue == 'girl' && v.gender == 1) {
opts.push('<option name="'+v.gender+'">'+v.name+'</option>');
}
});
$('#items').html(opts.join(''));
});
});
</script>
BEARBEITEN 2:
Dies ist meine letzte Vermutung, was Sie wollen. Aus Kommentaren denke ich, dass Sie vielleicht die Seite neu laden möchten, aber die Wertauswahl senden möchten:
<script type="text/javascript">
$(function () {
$("#category").change(function () {
var selectedValue = $(this).val();
window.location = '?select='+selectedValue;
});
});
</script>