Базовый PHP и AJAX - PullRequest
       1

Базовый PHP и AJAX

11 голосов
/ 14 марта 2011

У нас есть большая система PHP, которую я изменяю на ООП, и мы хотим использовать AJAX для обновления веб-страниц для зарегистрированных пользователей. Я полностью самоучка и хорошо разбираюсь в HTML, CSS и PHP с базовым пониманием Javascript.

Попытка выучить AJAX на PHP побеждает меня. После того, как я попробовал самодельный набор скриптов для тестирования AJAX, который не работал, я пошел в Интернет за примерами и не смог заставить их работать. Это на моем компьютере Mac с MAMP и хостом, на котором мы держим текущую систему.

У меня вопрос: есть ли у кого-нибудь простой «привет мир», набор HTML и PHP-скриптов, который, как они знают, работает, и я могу попытаться подтвердить, что могу запустить что-то известное.

Большое спасибо Colin

Ответы [ 5 ]

14 голосов
/ 14 марта 2011

Если вы собираетесь использовать AJAX, я бы порекомендовал также использовать jQuery.Это значительно упрощает процесс, тестируется в кросс-браузерном режиме и имеет много простых в использовании функций-оболочек.

Это действительно так же просто, как создать страницу PHP с именем hello.php

<?php
  echo "Hello World";
?>

Затем на главной странице вам нужно взять библиотеку jQuery и подключить ее к событию готовности документа.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
     $(function(){
       $.get("hello.php", function(data){
           alert(data);
       });
    });
</script>

По сути, это простейший учебник AJAX hello world, который я знаю :)

10 голосов
/ 14 марта 2011

Нет, не совсем, но я бы порекомендовал вам использовать jQuery, если вы вообще собираетесь использовать ajax. Это сделает вашу жизнь намного проще.

Тем более что все браузеры не поддерживают Ajax одинаково.

пример приложения, использующего jQuery + PHP для вызовов ajax:

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

receiver.php:

<?php
echo 'you just received me, I\'m some PHP code and ajax is definitely working...';
?>

sender.html:

<p>Hello, click this button: <a id="button" href="receiver.php">Click me</a></p>
<p id="container"><!-- currently it's empty --></p>

<!-- including jQuery from the google cdn -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<script type="text/javascript">
// This is our actual script
$(document).ready(function(){
    $('a#button').click(function(){
        $.ajax({
            url: this.href,
            type: 'GET',
            dataType: 'html',
            success: function (data) {
                $('#container').html(data);
            }
        });
    });
});
</script>

Это должно быть все, что вам нужно для базового ajax-приложения ...

4 голосов
/ 14 марта 2011

Я бы предложил использовать jQuery AJAX-методы , которые являются кросс-браузерными и простыми в использовании.

3 голосов
/ 16 апреля 2015

Вот базовый пример, который использует jQuery, отправляя значения из формы в отдельный файл PHP, проверяет и возвращает результаты.

form.php

<html>

<head>
<title>Simple JQuery Post Form to PHP Example</title>
</head>

<body>

<!-- including jQuery from the google cdn -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js">      </script>

<!-- This div will be populated with error messages -->
<div id="example_form_error"></div>

<!-- This div will be populated with success messages -->
<div id="example_form_success"></div>

<!-- Here is your form -->
<div id="example_form_enter">
    <form id="contact_modal_form" method='post' action='form_post.php'>
            <label for="Name">Enter Your Name (Not "Adam"):</label> <input class='textbox' name='Name' type='text' size='25' required />
            <button class='contact_modal_button' type='submit'>Send</button>
    </form>
</div>

<!-- This div contains a section that is hidden initially, but displayed when the form is submitted successfully -->
<div id="example_form_confirmation" style="display: none">
    <p>
        Additional static div displayed on success.
        <br>
        <br>
        <a href="form.php">Try Again</a>
    </p>
</div>

<!-- Below is the jQuery function that process form submission and receives back results -->
<script>
    $(function() {
        $("#contact_modal_form").submit(function(event) {
            var form = $(this);
            $.ajax({
                type: form.attr('method'),
                url: form.attr('action'),
                data: form.serialize(),
                dataType: 'json',
                success: function(data) {
                    if(data.error == true) {
                        var error = $("#example_form_error");
                        error.css("color", "red");
                        error.html("Not " + data.msg + ". Please enter a different name.");
                    } else {
                        $("#example_form_enter").hide();
                        $("#example_form_error").hide();
                        $("#example_form_confirmation").show();

                        var success = $("#example_form_success");
                        success.css("color", "green");
                        success.html("Success! You submitted the name " + data.msg + ".");
                    }
                }
            });
            event.preventDefault();
        });
    });
</script>

</body>

</html>

form_post.php

<?php

    // Request Post Variable
    $name = $_REQUEST['Name'];

    // Validation
    if($name == 'Adam') {
    echo json_error($_REQUEST['Name']);
    } else {
    echo json_success($_REQUEST['Name']);
    };

    // Return Success Function
    function json_success($msg) {
        $return = array();
        $return['error'] = FALSE;
        $return['msg'] = $msg;
        return json_encode($return);
    }

    // Return Error Function
    function json_error($msg) {
        $return = array();
        $return['error'] = TRUE;
        $return['msg'] = $msg;
        return json_encode($return);
    }

?>
0 голосов
/ 14 ноября 2018
if(!$mail->Send()) {
    //echo "Mailer Error: " . $mail->ErrorInfo;
    $data[0]=array('result'=>'Mail not send');
}elseif(!$mail1->Send()){
    //echo "Mailer Error: " . $mail->ErrorInfo;
    $data[0]=array('result'=>'Mail not send');
}else {
    $data[0]=array('result'=>'Mail Send');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...