2015-06-27 3 views
0

мне было интересно, как это можно было бы сделать это ... Я уже знаю, как включить форму и PHP в одном файле:в том числе HTML формы и связанной с PHP в одном файле - с Javascript представить()

<form method="post"> <!-- might also loop back to the same HTML file with action--> 
<?php 
    if (isset($_POST["sent"])) { 
     echo "<p>This string has been entered: " . $_POST["string"] . "</p><hr />"; 
    } 
?> 
<p>Enter string:</p> 
<p><input name="string" /></p> 
<p><input type="submit" value="Submit String" name="sent"></p> 
</form> 

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

<form action="phpfile.php" name="myForm" method="post"> 
    <p>Enter Name: <input name="name" /></p> 
</form> 
<a href="javascript:document.myForm.submit();">Submit Name</a> 

Так что, кажется, нет никакого способа ссылаться на любые значения $ _POST я мог бы использовать, чтобы проверить, если они уже set ... Есть ли удобное решение для этого?

ответ

0

Хорошо, после игры вокруг немного я нашел ответ: Да, с помощью Javascript отправить() метод дает массив $ _POST (если метод форма записи), и все входы могут быть указаны как обычно через их имя.

Для проверки того, установлен ли выбранный вход, можно использовать либо isset ($ _ POST ["xxxxx"]), либо $ _SERVER ["REQUEST_METHOD"].

0

Вы можете проверить с методом запроса является сообщение, см пример ниже:

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    echo "<p>This string has been entered: " . $_POST["string"] . "</p><hr />"; 
} 
+0

Спасибо за полезный tipp, но помогает ли это, если я использую функцию submit() Javascript? Я до сих пор не вижу доступа к данным, представленным с помощью Javascript, потому что он, похоже, не производит каких-либо данных $ _POST ... или делает это? – AdHominem

+0

вы просто отправляете с помощью javascript при щелчке на якоре, который ведет себя так же, как кнопка отправки, разница в том, что он не может опубликовать значение привязки. –

+0

Ну, и я не могу получить доступ к данным $ _POST, чтобы проверить, установлены ли данные ... – AdHominem

0

Вы определенно должны изменить ссылку на
<a href="#" onclick="document.myForm.submit(); return false">Submit Name</a>
она представит все, что вводится в поле формы, которую я дал бы a type="text" тоже.

Если вам нужна также «Отправить String» в переданной переменной. добавить его в скрытом поле:

<input type="hidden" value="Submit String" name="sent"></p> 
+0

Спасибо, но делает ли JS этот текст как элемент массива $ _POST? Строка «Отправить» - это просто подпись для кнопки, это не обязательно. – AdHominem

+0

Попробуйте и посмотрите - это должно – mplungjan

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