2015-06-25 2 views
1

Это мой первый пост при переполнении стека, но как новичок я часто его посещаю для ответов, но по этому вопросу я не могу найти существующий ответ что помогает мне - из-за моих ограниченных знаний.выбор из раскрывающегося списка не заполняет второй зависимый список переходов из-за предупреждения браузера

На моем веб-сайте используется готовое приложение магазина, для которого поддержка больше не доступна, что я широко изменял в течение нескольких лет. Существуют страницы проверки, в которых есть раскрывающийся список для страны и второй зависимый выпадающий список для штата.

Я удалил выпадающие списки совершенно давным-давно из-за проблемного поведения, которое я не мог исправить, но теперь мне нужно восстановить выпадающие списки (и их код проблемы), потому что мой платежный шлюз меняется на стандартизованный код страны и требования к коду состояния.

Что происходит, когда выбор сделан из выпадающего списка Страна, код отправляет форму перед тем, как выбор может быть сделан из раскрывающегося списка States; в этот момент браузер выводит предупреждение с просьбой подтвердить, что вы хотите оставить страницу, на которой вы находитесь.

Если вы ответите «Нет», вы застряли, потому что раскрывающийся список States остается пустым, и в любом случае кнопки формы (далее, назад, отменены) теперь ничего не делают. С другой стороны, если вы ответите «Да», тогда следующая форма выгрузки будет загружена в браузере, и в этой форме вы должны использовать кнопку «Назад», чтобы вернуться к первой форме, в которой теперь выпадающее окно «Штаты», и теперь вы можете сделать выбор, затем используйте кнопку «next» и т. д. Очевидно, что это не жизнеспособный процесс для пользователя, потому что большинство ответит «нет» и просто застрянет.

Вот соответствующая часть кода:

<tr> 
    <td class="KT_th"><label for="country_ord">Country:</label></td> 
    <td> 
     <select name="country_ord" id="country_ord" onChange="submitMe(this)"> 
      <option value="" >Choose one...</option> 
       <?php 
        do { 
       ?> 
       <option value="<?php echo $row_rsCountry['iso2_cnt']?>"<?php if (!(strcmp($row_rsCountry['iso2_cnt'], $row_rsorder_ord['country_ord']))) {echo "SELECTED";} ?>> 
       <?php echo $row_rsCountry['name_cnt']?></option> 
       <?php 
        } while ($row_rsCountry = mysql_fetch_assoc($rsCountry)); 
        $rows = mysql_num_rows($rsCountry); 
        if($rows > 0) { 
         mysql_data_seek($rsCountry, 0); 
         $row_rsCountry = mysql_fetch_assoc($rsCountry); 
        } 
       ?> 
     </select> 
      <?php echo $tNGs->displayFieldError("order_ord", "country_ord"); ?> 
    </td> 
</tr> 
<tr> 
    <td class="KT_th"><label for="state_ord">State (REQUIRED for USA only):</label (optional)></td> 
    <td> 
     <select name="state_ord" id="state_ord"> 
      <option value="">Choose one ...</option> 
<?php 
do { 
?> 
      <option value="<?php echo $row_rsStates['code_sta']?>"<?php if (!(strcmp($row_rsStates['code_sta'], $row_rsorder_ord['state_ord']))) {echo "SELECTED";} ?>><?php echo $row_rsStates['name_sta']?></option> 
      <?php 
} while ($row_rsStates = mysql_fetch_assoc($rsStates)); 
    $rows = mysql_num_rows($rsStates); 
    if($rows > 0) { 
     mysql_data_seek($rsStates, 0); 
    $row_rsStates = mysql_fetch_assoc($rsStates); 
    } 
?> 
     </select> 
      <?php echo $tNGs->displayFieldError("order_ord", "state_ord"); ?> 
    </td> 
</tr> 
<tr class="KT_buttons"> 
    <td colspan="2"> 
     <input type="button" onClick="MM_goToURL('parent','index.php?mod=cartview');return document.MM_returnValue" value="&lt; Previous"> 
     <input type="submit" name="KT_Update1" id="KT_Update1" value="Next &gt;"> 
     <input name="button_cancel" type="button" value="Cancel" onClick="document.location = 'index.php?mod=cartview'"> 
     <input type="hidden" name="validate_form" value="1"> 
    </td> 
</tr> 
</table> 
</form> 
<script> 
function submitMe(el) 
{ 
var frm = el.form; 
frm.action = window.location.href; 
frm.elements.state_ord.selectedIndex = 0; 
frm.elements.validate_form.value = 0; 
KT_FVO = {}; 
frm.elements.KT_Update1.click(); 
} 
</script> 
+0

Быть новичком не имеет значения. Лучшее, что вы можете сделать, это передать что-то четкое и поделиться только соответствующим кодом, с отступом хорошо для лучшей читаемости, и у обоих не хватает вашего поста! –

+0

Извините, я знаю, что мне есть чему поучиться. Если я написал слишком много, это потому, что я пытался предоставить достаточно информации, чтобы помочь кому-то, у кого может быть ответ. – David

ответ

0

для предотвращения подачи, когда значение раскрывающихся выбрано удалить это:

onChange="submitMe(this)" 

from this: 
<select name="country_ord" id="country_ord" onChange="submitMe(this)"> 

to this: 
<select name="country_ord" id="country_ord"> 
+0

Спасибо всем за ответы до сих пор - какой фантастический быстрый ответ !. Я не могу проверить дальше на оставшуюся часть дня (другие обязанности), но я отвечу позже сегодня с результатами. – David

+0

Я предполагаю, что вы намеревались поставить его здесь: – David

+0

Упс, я нажал вернуться и выложил перед готовкой. Я предполагаю, что вы имели в виду здесь: