2016-07-07 7 views
0

У меня есть форма заказа одежды на странице. Я хочу «обменивать» эту форму с другой, когда я выбираю опцию из раскрывающегося списка/меню. Возможно, Аякс? PHP include()? Параметры в раскрывающемся списке будут выбирать различные формы, уже созданные как шаблоны в другом каталоге, и отображать их вместо другой формы.Изменить на другую форму при выборе выпадающего меню

Я просто хочу, чтобы одна форма показывалась за раз. Благодаря! :)

+2

Мое будет полезно: http://stackoverflow.com/questions/3675006/how-to-switch-choose-between-html-forms – AkshayP

+0

@AshkayP Спасибо, я видел это и тестирую его, но так или иначе работать на 20 форм? 50 форм? У нас много стилей. Есть ли проблема с тем, что многие формы скрыты на одной странице? – Bigfootbud

ответ

0

Не ставьте слишком много скрытых форм, если можете. Это просто плохой дизайн, особенно в отношении производительности. Лучше всего, чтобы:

  • Создать некоторые PHP файлы с формой внутри каждого
  • Используйте запрос AJAX общаться, если условие выполняется

Если вы любите заложенность вещи один файл пытается передать уникальный параметр с AJAX в файл PHP и проверить его значение, чтобы решить, какую форму загрузить.

Пример:

var xhr = new XMLhttpRequest(); 
    formID = (condition) ? 1 : 2; // etc 

    //^^ This one line above means: 
    if (condition) { 
     formID = 1; 
    } 
    else { 
     formID = 2; 
    } 

... 

// GET request 
xhr.open("GET", "forms.php?formID=" + formID); 

// POST request 
xhr.send("formID=" + formID); 

В PHP:

<?php 
    if (isset($_POST["formID"]) && $_POST["formID"] === 1): 
?> 
     <form id = "1"></form> 
<?php 
    else: 
?> 
     <form id = "2"></form> 
<?php 
    endif; 
?> 

[EDIT]:

Если вы хотите иметь каждую форму в другом файле, то выше код будет:

<form>...</form> // No PHP necessary 

В JavaScript используют xhttp.send("") без ввода каких-либо значений (только если формы находятся в разных файлах).

+0

Я немного новичок, поэтому ваш код немного расплывчато для меня. Вы говорите, что я могу создать шаблон для каждой формы и использовать AJAX для отображения любого выбранного на странице? – Bigfootbud

+0

Точно. Создайте две формы и поместите их в 'if statement', как я сделал, чтобы PHP определил, какой из них нужно отображать. PHP решит, какой из них будет отображаться на основе данных, которые вы отправляете ему с запросом AJAX. Это может быть что угодно, но я использовал цифры '1' и' 2' для простоты. –

+0

Также, если вы еще не знаете, 'isset()' проверьте, существует ли что-то. Итак, 'if isset ($ _ POST [" formID "])' проверяет, получил ли PHP данные от AJAX. Затем мы проверяем его значение, чтобы определить, какую форму отобразить. –

Смежные вопросы