Я заполняю форму выбора, используя скрипт из базы данных. Теперь то, что я хочу сделать, это то, что если пользователь меняет пример, выбирает совпадение 1, тогда я запустил что-то в другом php файле, чтобы заполнить div деталями из соответствия 1. Если я не заполню варианты выбора сценарием, он отлично работает, Хотя, когда я использую скрипт, параметры есть правильно, но при изменении ничего не происходит.
JS на заголовке
function populateSelect(){
var load = $.get('popRoundSel.php',{gameNo:"<?php echo $_POST['gameNo']; ?>"});
$(".round").html('Refreshing');
load.error(function() {
console.log("Mlkia kaneis");
$(".round").html('failed to load');
// do something here if request failed
});
load.success(function( res ) {
console.log( "Success" );
$(".round").html('<select id="roundselect"><option>----</option>'+res+'</select>');
});
load.done(function() {
console.log( "Completed" );
});
}
$(document).ready(function()
{
$('#roundselect').change(function()
{
var selected = $(this).find(':selected').html();
$.post('roundinfo_sc.php', {'beverage': selected}, function(data) {
$('#result').html(data);
});
});
});
Код страницы
<h2>Select a round to see more details</h2>
<div class="round">
<script>
populateSelect();
</script>
</div>
<div id="result">
</div>
Проблема в том, что когда вы добавляете новый select, вы теряете все события, которые вы связываете с ним.
Поэтому вы должны поместить $('#roundselect').change(function()...
внутри функции succes load:
load.success(function( res ) {
console.log( "Success" );
$(".round").html('<select id="roundselect"><option>----</option>'+res+'</select>');
$('#roundselect').change(function()
{
var selected = $(this).find(':selected').html();
$.post('roundinfo_sc.php', {'beverage': selected}, function(data) {
$('#result').html(data);
});
});
});
populateSelect();
работает, я<select id="roundselect"><option>----</option>'+res+'</select>
div с<select id="roundselect"><option>----</option>'+res+'</select>