2015-03-30 2 views
0

У меня есть форма с многоуровневым списком выбора, в списке выбора отображаются параметры, основанные на ранее выбранном (с использованием jQuery). Вы можете найти скрипку в моем посте или here. Моя форма действия заключается в следующем:Как обрезать формы «submit» для многоуровневого списка выбора?

<form action="catalog.php?category=submit" method="GET" id="selectorForm"> 

Возвращенный URL, когда кнопка отправить щелкают выглядит следующим образом:

.../catalog.php?series=5series&3generation=&5generation=e39&e46model=&e39model=525i&e60model= 

Однако, я хочу только последний вариант, выбранный в списке выбора многоуровневого для передачи в URL. Например: ../catalog.php?category=525i.

Как я могу это сделать?

В качестве альтернативы, если я получаю URL-адрес, как в настоящее время, к моему каталогу. Php, как я могу определить, какие значения уровня были переданы на основе уровня списка выбора в самом PHP?

jQuery(function($) { 
 

 
    $("#series").change(function() { 
 
    var targetID = $(this).val(); 
 
    $("div.generation").hide(); 
 
    $('#' + targetID).show(); 
 
    }); 
 

 
    $("#3generation").change(function() { 
 
    var targetID = $(this).val(); 
 
    $("div.model").hide(); 
 
    $('#' + targetID).show(); 
 
    }); 
 

 
    $("#5generation").change(function() { 
 
    var targetID = $(this).val(); 
 
    $("div.model").hide(); 
 
    $('#' + targetID).show(); 
 
    }); 
 

 
    $('.selectModel').change(function() { 
 
    if ($(this).val() != "") { 
 
     $('#submit').show(); 
 
    } else { 
 
     $('#submit').hide(); 
 
    } 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<h3 align="center">Choose your BMW<br /><br /></h3> 
 

 
<div id="selectorFormContainer" width="100%" align="center"> 
 

 
    <form action="catalog.php?category=submit" method="GET" id="selectorForm"> 
 

 
    <div id="SeriesContainer" class="selector"> 
 
     <select id="series" class=" validate['required']" name="series" size="1"> 
 
     <option value="">Choose your BMW's series</option> 
 
     <option value="3series">3 series</option> 
 
     <option value="5series">5 series</option> 
 
     </select> 
 
    </div> 
 
    <br /> 
 
    <div id="3series" class="generation" style="display: none;" onchange="ChangeDropdowns(this.value)"> 
 
     <select id="3generation" class="selectGen" name="3generation" size="1"> 
 
     <option value="">Choose your BMW's generation</option> 
 
     <option value="e46">E46 (1998 - 2006)</option> 
 
     </select> 
 
    </div> 
 
    <div id="5series" class="generation" style="display: none;" onchange="ChangeDropdowns(this.value)"> 
 
     <select id="5generation" class="selectGen" name="5generation" size="1"> 
 
     <option value="">Choose your BMW's generation</option> 
 
     <option value="e39">E39 (1995 - 2003)</option> 
 
     <option value="e60">E60 (2003 - 2010)</option> 
 
     </select> 
 
    </div> 
 
    <br /> 
 
    <div id="e46" class="model" style="display: none;" onchange="ChangeDropdowns(this.value)"> 
 
     <select id="e46model" class="selectModel" name="e46model"> 
 
     <option value="">Choose your BMW's model</option> 
 
     <option value="320i">320i</option> 
 
     </select> 
 
    </div> 
 
    <div id="e39" class="model" style="display: none;" onchange="ChangeDropdowns(this.value)"> 
 
     <select id="e39model" class="selectModel" name="e39model"> 
 
     <option value="">Choose your BMW's model</option> 
 
     <option value="525i">525i</option> 
 
     <option value="540i">540i</option> 
 
     </select> 
 
    </div> 
 
    <div id="e60" class="model" style="display: none;" onchange="ChangeDropdowns(this.value)"> 
 
     <select id="e60model" class="selectModel" name="e60model"> 
 
     <option value="">Choose your BMW's model</option> 
 
     <option value="M5">M5</option> 
 
     </select> 
 
    </div> 
 
    <br /> 
 
    <div id="submit" style="display: none;"> 
 
     <input value="submit" style="border: none; border-radius: 5px; height: 2em; width: 10em; background-color: #22b8f0; color: #ffffff;" type="submit" /> 
 
    </div> 
 
    </form> 
 
</div>

+0

Вместо того, оформив 'GET' запрос на отправку, почему бы вам' POST' ваша форма - отправка содержимого формы в тело сообщения HTTP, а не URL-адрес. – wahwahwah

ответ

0

HTML представления формы упаковать все данные в виде элементов в строку и отправить их к месту назначения. вы не можете его изменить. но вы можете использовать JavaScript, чтобы собрать некоторые определенные данные и отправить их в URL (через AJAX или просто перенаправляет браузер с некоторыми данными в ней)

это перенаправляет метод:

data = $("your element").serialize(); 
window.location.href = "your url/?"+data; 
Смежные вопросы