olinapopa
@olinapopa

Из php методом ajax в php и обратно, пересылка данных. Поможете разобраться?

Есть два файла.
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript">


        function AjaxFormRequest(result_id,form_id,url) {
            jQuery.ajax({
                url:     "random.php", //Адрес подгружаемой страницы
                type:     "POST", //Тип запроса
                dataType: "html", //Тип данных
                data: jQuery("#"+form_id).serialize(),
                success: function(response) { //Если все нормально
                    document.getElementById(result_id).innerHTML = response;
                },
                error: function(response) { //Если ошибка
                    document.getElementById(result_id).innerHTML = "Ошибка при отправке формы";
                }
            });
        }

    </script>
</head>
<body>
<div id="result_div_id">
    Поиграем?<br/>
    <br/>
    Введите число от 1 д 10.
</div>
<br/><br/>
<form method="post" action="" id="form_id">
    <input type="text" name="number"  /><br/>

    <input type="button" value="Играем!" onclick="AjaxFormRequest('result_div_id', 'form_id', 'random.php')" />
</form>

</body>
</html>


И обработчик random.php
<?php

if(!empty($_POST['number'])) {
    $number = $_POST['number'];
    $random = rand(1, 10);
    if($number == $random) {
        echo "Выпало число: $random";
        echo "<br>Вы выиграли!";
        return true;
    } else {
        echo "Выпало число: $random";
        echo "<br>Проиграли";
        return false;
    }
}
else {echo "Не заполнили форму";}


?>


Скрипт работает, только встал вопрос, а как быть, если допустим, мне необходимо отправлять данные не из html а из php. Предположим, по этому же скрипту, в index php отослать то, что пришло с обработчика. допустим какую нибудь перемененную.
  • Вопрос задан
  • 274 просмотра
Пригласить эксперта
Ответы на вопрос 1
@qxcoder
---
Вы, наверное, не правильно понимаете назначение AJAX запросов. Для начала, я бы рекомендовал вам ознакомиться со статьёй Тут.
А если вкратце, то это технология позволяет сделать запрос и получить ответ, без перезагрузки страницы.

Предположим, по этому же скрипту, в index php отослать то, что пришло с обработчика. допустим какую нибудь перемененную.

Оно так и будет работать, вы делаете запрос на бэк, скрипт обрабатывает ваш запрос и данные, которые вы отправили и отдает результат, который вы можете положить в переменную либо сделать всё, что душе угодно.
Вот простенький пример:
$.ajax({
  type: 'POST',
  url: 'response.php?action=sample2',
  data: 'name=Andrew&nickname=Aramis',
  success: function(data){
    $('.results').html(data);
  }
});


В data и находится ответ от пхп скрипта.

А конкретно в вашем примере:
document.getElementById(result_id).innerHTML = response;

document.getElementById(result_id).innerHTML - можно заменить на let data = response.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы