HTML-форма отправить в PHP-скрипт - PullRequest
17 голосов
/ 30 декабря 2010

Я делаю форму 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".Как передать одну из строк из опции?

Ответы [ 6 ]

39 голосов
/ 30 декабря 2010

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

<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>

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

check.php

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

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

5 голосов
/ 30 декабря 2010
<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'];

3 голосов
/ 30 декабря 2010

Похоже, что в 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'];

?>
0 голосов
/ 08 июля 2015

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

  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 и имени как Submit.

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

0 голосов
/ 03 апреля 2015

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

<form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> method="POST>
0 голосов
/ 30 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...