Ajax с jQuery - PullRequest
       16

Ajax с jQuery

1 голос
/ 22 сентября 2010

Я очень плохо знаком с JQuery и AJAX.

Я прочитал немного API, предоставленного jquery на их сайте, который сказал:

Пример: Оповещение о результатах запроса test.php (HTML или XML, в зависимости от того, что было возвращено).

$.post("test.php", function(data){
   alert("Data Loaded: " + data);
 });

Теперь я хотел бы знать, как именно test.php возвращает некоторые данные. Я имею в виду, может ли кто-нибудь предоставить образец "test.php" здесь

Спасибо! : D

Ответы [ 4 ]

3 голосов
/ 22 сентября 2010

Вы можете просто вернуть простую строку. Независимо от того, выводится ли параметр URL, он будет записан конкретным используемым вами методом ajax:

<?php echo 'this is a test'; ?>

Если вы хотите вернуть более сложную структуру (например, json), вы можете сделать:

<?php 

$data = array('foo' => 'bar');
echo json_encode($data);

?>

и на клиенте:

$.post("test.php", function(json){
   alert("Data Loaded: " + json.foo);
}, "json");
1 голос
/ 22 сентября 2010

Допустим, если у вас есть код в test.php

<?php
 echo "test data from test.php"
?>

Сообщение передается в переменную данных javascript и, наконец, будет оповещено.

Некоторые полезные ссылки

Вот пример и простое приложение

index.php

<?xml version="1.0" encoding="UTF-8"?>
<!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" xml:lang="en" lang="en">
<head>
    <title><!-- Insert your title here --></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">

    function register(){
        $.ajax({
            type: "POST",
            url: "submit_data.php",
            data:   "username=" + document.getElementById("username").value + 
                    "&email=" + document.getElementById("email").value,
            success: function(html){
                $("#response").html(html);
            }
        });

        }

    </script>
</head>
<body>
    <form action="" method="post">
          <p>
            <label for="name">Name:</label><br />
            <input type="text" name="username" id="name" size="25" />
          </p>
          <p>
            <label for="email">Email:</label><br />
            <input type="text" name="email" id="email" size="25" />
          </p>
          <p>
            <input type="button" name="submit" id="submit" value="Subscribe" onclick="register()"/>
          </p>

    </form>
    <div id="response">
        <!-- Our message will be echoed out here -->
    </div>
</body>
</html>

submit_data.php

<?php 

        // Variables 

                $db_host = 'localhost'; 
                $db_user = 'user'; 
                $db_pass = 'pass'; 
                $db_name = 'db'; 

        $Username = $_POST['username']; 
        $Email    = $_POST['email'];     

        // DB 

        $connect = mysql_connect( $db_host, $db_user, $db_pass ) or die( mysql_error() ); 
        $connection = $connect; 

        mysql_select_db( $db_name, $connect ) or die( mysql_error() ); 

        // Inserting into DB 

        $qInsertUser = mysql_query(" INSERT INTO `database` (`id`, `username`, `email`) 
                                     VALUES ( ``, `$Username`, `$Email`) 
                                  "); 

        if ($qInsertUser){ 
            echo "You are now subscribed to our newsletter. Thank you!"; 
        } else { 
            echo "Error!"; 
        } 

    ?>
1 голос
/ 22 сентября 2010
<?php echo 'return data'; ?>

Что происходит, так это то, что браузер отправляет запрос на заданный URL, как и любой другой веб-запрос, за исключением того, что браузер не отображает результат; он вручает его вам , чтобы вы могли делать с ним все, что пожелаете.

Для возврата сложных php-объектов в виде объектов JSON, для взаимодействия с вашим javascript, проверьте json_encode ()

1 голос
/ 22 сентября 2010

test.php может выглядеть так:

<tag>Data!!!</tag>

Нет необходимости в <?php тегах.

Если вы используете JSON (это хороший выбор для многих вещей) вы можете создать объект или массив PHP и затем выполнить:

<?php echo json_encode($my_object); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...