Как передать данные в скрипт PHP из HTML?

321
10 февраля 2017, 06:16

Вопрос следующий имеется страничка на HTML в ней есть поля для логина и пароля для подключения к БД. Как передать вводимые данные в скрипт?

Answer 1

Передать можно с помощью суперглобальных массивов $_GET и $_POST. Метод передачи можно выставить в самой форме <form action="/index.php" method="post"> где action="/index.php" это пусть к файлу который получает данные из формы. В файле (index.php к примеру) будет следующий код.

Форма html для $_POST :

<form action='/index.php' method='post'>
<input type="text" name="name">
<input type="password" name="password">
<input type="submit" name="save" >
</form>

PHP код index.php:

<?php
if(isset($_POST['password']) && isset($_POST['name'])){
 echo $_POST['password'].'<br>';
 echo $_POST['name'];
}

Если одним файлом, то можно записать следующим образом (файл index.php):

<?php
    if(isset($_POST['password']) && isset($_POST['name'])){
     echo $_POST['password'].'<br>';
     echo $_POST['name'];
    }
?>
<html>
 <head>
 </head>
 <body>
    <form action='/index.php' method='post'>
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="submit" name="save" >
    </form>
 </body>
</html>

Да. также можно и через AJAX, отправляя JSON.

Вот рабочий пример реализации ajax с помощью jquery файл index.php:

<?php
function is_ajax()
{
    return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
if (is_ajax() && isset($_POST['password']) && isset($_POST['name'])) {
    echo json_encode(array(
        'ok' => 'AJAX OK!!!'
    ));
    exit();
}
?>
<html>
 <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 </head>
 <body>
    <form id="sub" action='/index.php' method='post'>
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="submit" name="save" >
    </form>

<script>
   $("document").ready(function(){
    $("#sub").submit(function(event){
         event.preventDefault();
       var data = $(this).serialize();
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "index.php",
            data: data,
            success: function(r) {
              console.log(r);
            }
        });
        return false;
    });
});
</script>

 </body>
</html>

С помощью echo json_encode(array('ok' => 'AJAX OK!!!')); мы отправляем ответ нашему браузеру и в панели разработчика можем увидеть ответ.

Нужно обратить внимание что пароли и важные данные принято передавать post методом.

Answer 2

AJAX -это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером.

А тут - реализация с помощью библиотеки jquery.

READ ALSO
Голосование modx revo

Голосование modx revo

Подскажите, делаю голосование

339
Как упростить многочисленные else if?

Как упростить многочисленные else if?

Есть динамические данные от пользователя, которые на сервере необходимо проверять на вхождение в тот или иной диапазон и в зависимости от этого...

259
проблемма с nodejs и json

проблемма с nodejs и json

ЗдравствуйтеЗнаю, что за данный вопрос мне скинут репутацию, но все-же

275