Форма HTML представляет скрипт PHP

Я делаю HTML-форму. Я хочу, чтобы результаты отображались в скрипте PHP.

<form action="chk_kw.php" method="post"> <br /> <select> name="website_string" <option value="" selected="selected"></option> <option VALUE="abc"> ABC</option> <option VALUE="def"> def</option> <option VALUE="hij"> hij/option> </select> <input type="submit" name="website_string" > </form> 

Проблема в том, что я не могу получить значение, переданное PHP. если я использую значение:

 <INPUT TYPE="submit" name="website_string" value="selected" > 

Он всегда передает текст в кавычках. В этом случае "selected" . Как передать одну из строк из этой опции?

Попробуй это:

 <form method="post" action="check.php"> <select name="website_string"> <option value="" selected="selected"></option> <option VALUE="abc"> ABC</option> <option VALUE="def"> def</option> <option VALUE="hij"> hij</option> </select> <INPUT TYPE="submit" name="submit" /> </form> 

Как ваш элемент управления, так и кнопка отправки имеют одинаковый атрибут name , поэтому последним из них была кнопка отправки, когда вы ее нажали. Все остальные синтаксические ошибки.

check.php

 <?php echo $_POST['website_string']; ?> 

Обязательное отказ от использования необработанных $_POST данных. Санируйте все, что вы на самом деле будете использовать в логике приложения .

 <form method="POST" action="chk_kw.php"> <select name="website_string"> <option selected="selected"></option> <option value="abc">abc</option> <option value="def">def</option> <option value="hij">hij</option> </select> <input type="submit"> </form> 

  • По мере того как ваша форма становится более сложной, вы можете быстро проверить поверх своего php-скрипта, используя print_r($_POST); , он покажет, что передается соответствующее имя элемента.
  • Чтобы получить представленное значение элемента, о котором идет речь, выполните:

    $website_string = $_POST['website_string'];

Похоже, что в PHP вы получаете значение кнопки отправки, а не вход выбора. Если вы используете GET, вы захотите использовать $_GET['website_string'] или POST будет $_POST['website_string'] .

Вероятно, вам понадобится следующий HTML:

 <select name="website_string"> <option value="" selected="selected"></option> <option value="abc">ABC</option> <option value="def">def</option> <option value="hij">hij</option> </select> <input type="submit" /> 

С некоторым PHP, который выглядит так:

 <?php $website_string = $_POST['website_string']; // or $_GET['website_string']; ?> 

Предполагая, что вы исправили синтаксические ошибки (вы закрыли поле выбора перед атрибутом name), вы используете то же имя для окна выбора в качестве кнопки отправки. Укажите в поле выбора другое имя.

Для вашей фактической формы, если вы просто опубликуете результаты на своей странице, это, вероятно, все будет в порядке. Попробуйте что-нибудь вроде:

 <form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> method="POST> 

Вот что я нахожу работы

  1. Задайте form name
  2. Используйте default select option , например …

    <option value="-1" selected>Please Select</option>

Таким образом, если форма отправлена, использование JavaScript для остановки процесса отправки может быть реализовано и проверено на сервере.

  1. Попробуйте использовать атрибуты HTML5, теперь они поддерживаются.

Этот вход

 <input type="submit"> 

должно быть

 <input name="Submit" type="submit" value="Submit"> 

всякий раз, когда я использую форму, которая терпит неудачу, это сбой из-за разницы в вызове имени кнопки и имени submit .

Вы также должны установить свой атрибут enctype для своей формы, если формы не выполняются на моем веб-хосте, если они не установлены.