Я улучшаю страницу оформления заказа и имею 2 идентичных меню выбора страны. Один вверху страницы для расчета почтовых расходов и один внизу для ввода адреса доставки. Похоже, нашим клиентам трудно понять, что им нужно выбрать одну и ту же страну в обоих меню, иначе расчет цены будет неправильным.
Итак, я пытаюсь внести изменения в одном меню, обновить его пару и наоборот. В настоящий момент первое меню (меню A), которое я изменяю, работает нормально несколько раз (влияет на меню B), но после того, как меню A было изменено, измененное на меню B не было выбрано. То же самое в обратном порядке, если меню B изменяется первым, изменения в меню A не воспринимаются JavaScript.
Меню записываются обратно на страницу с выбранной соответствующей опцией. Мне было интересно, не перезаписывает ли это меню с помощью ajax меню в jquery.
Вот полный сценарий (МЕНЮ ОБНОВЛЕНИЯ ... биты - это важные функции, просто я думал, что оставлю остальные функции в сценарии на случай, если они вызовут проблему)
// wait for the DOM to be loaded
$(document).ready(function() {
// see if countryIsoTop menu has changed
$("#countryIsoTop").change(function() {
// UPDATE MENU IN SHIPPING OPTIONS
$.ajax({
type: "POST",
url: "incViewbasketShippingBoxes.php",
data: $("#checkoutform").serialize(),
success: function(response) {
$('#shippingBoxes').html(response);
}
});
// prevent actual form submission
return false;
});
// see if countryIsoShipping menu has changed
$("#countryIsoShipping").change(function() {
// UPDATE MENU IN TOP COUNTRY BOX
var data = 'countryIsoShipping=' + $("#countryIsoShipping").val();
$.ajax({
type: "POST",
url: "incViewbasketCountryChooser.php",
data: data,
success: function(response) {
$('#countryIsoTopBox').html(response);
}
});
// prevent actual form submission
return false;
});
});
Вот HTML
<div name="countryIsoTopBox" id="countryIsoTopBox">
<?
require("incViewbasketCountryChooser.php");
?>
</div>
...
<div id="shippingBoxes">
<?
require("incViewbasketShippingBoxes.php");
?>
</div>
Вот пример того, что производит php
<select name="countryIsoTop" id="countryIsoTop">
<option value="">Choose delivery country</option>
<option value="AF">Afghanistan</option>
.
.
.
</select>
и
<select name="countryIsoShipping" id="countryIsoShipping">
<option value="">Choose delivery country</option>
<option value="AF">Afghanistan</option>
.
.
.
</select>