Hướng dẫn how to use ajax response in php - cách sử dụng phản hồi ajax trong php

Tôi đang gặp vấn đề với dữ liệu phản hồi. Tôi muốn sử dụng dữ liệu phản hồi trong tệp PHP của mình. Tôi muốn gán chúng cho một biến PHP.

Đây là mã Ajax trong tệp chèn.php.

function change[]{
    var tp=$['#choose'].val[];
    var country_val=$['#country_filter'].val[];
    //alert[country_val];
    //var country_val=$['#country_filter'].val[];
        $.ajax[{
            type: "POST",
            url: "filter.php",
            data: { name: tp, country:"test"},

        success:function[ data ] {
          alert[data];
            }

        }];
     }

Đây là mã PHP trong bộ lọc.php

if[$_REQUEST["name"]]{
 $lvl = $_REQUEST["name"];
 //global $lvl;
echo $lvl;
}

Bây giờ tôi muốn sử dụng dữ liệu phản hồi để được gán cho biến PHP trong tệp chèn.php. Làm thế nào tôi có thể làm điều đó? Xin vui lòng giúp đỡ.

Đã hỏi ngày 26 tháng 9 năm 2013 lúc 12:20Sep 26, 2013 at 12:20

2

Gửi dữ liệu đến tệp chèn.php bằng AJAX, thay vì cảnh báo nó.

thay đổi chức năng thành công thành

$.ajax[{
 type: "POST",
 url: "filter.php",
 data: { name: tp, country:"test"},


  success:function[response] {
    var res = response;
    $.ajax[{
        type: "POST",
        url: "insert.php",
        data: { res: res },

    success:function[data]{
      alert[data];
      }
   }];
}];

Trong chèn.php,

Sử dụng điều này để có được biến.

$var = $_POST['res'];

Đã trả lời ngày 26 tháng 9 năm 2013 lúc 12:26Sep 26, 2013 at 12:26

Optimus PrimeOptimus PrimeOptimus Prime

6.7185 Huy hiệu vàng31 Huy hiệu bạc60 Huy hiệu Đồng5 gold badges31 silver badges60 bronze badges

1

Nếu Insert.php gọi Filter.php với AJAX và sau đó trả về một giá trị. Bạn không thể áp dụng JavaScript var đó cho một Php var trong chèn.php. Đó là do tập lệnh PHP chạy trên máy chủ khi trang được tải và JavaScript chạy cục bộ trên máy tính người dùng. Để áp dụng bất cứ điều gì cho biến PHP, bạn sẽ phải tải lại trang.

Đã trả lời ngày 26 tháng 9 năm 2013 lúc 12:29Sep 26, 2013 at 12:29

Hôm nay, chúng tôi sẽ khám phá khái niệm AJAX với PHP và JavaScript. Ajax & nbsp; Kỹ thuật giúp bạn cải thiện giao diện người dùng của ứng dụng và nâng cao trải nghiệm người dùng cuối.

Ajax là gì?

AJAX là viết tắt của JavaScript và XML không đồng bộ và nó cho phép bạn tìm nạp nội dung từ máy chủ back-end không đồng bộ, mà không cần làm mới trang. Do đó, nó cho phép bạn cập nhật nội dung của một trang web mà không tải lại nó.

Hãy cùng xem xét một ví dụ để hiểu làm thế nào bạn có thể sử dụng AJAX trong phát triển ứng dụng hàng ngày của bạn. Giả sử bạn muốn xây dựng một trang hiển thị thông tin hồ sơ của người dùng, với & nbsp; các phần khác nhau như thông tin cá nhân, thông tin xã hội, thông báo, tin nhắn, v.v.

Cách tiếp cận thông thường sẽ là xây dựng các trang web khác nhau cho mỗi phần. Vì vậy, ví dụ, người dùng sẽ nhấp vào liên kết thông tin xã hội để tải lại trình duyệt và hiển thị một trang với & nbsp; thông tin xã hội. Điều này làm cho nó chậm hơn để điều hướng giữa các phần, vì người dùng phải chờ trình duyệt tải lại và trang để hiển thị lại mỗi lần.

Mặt khác, bạn cũng có thể sử dụng Ajax để xây dựng một giao diện tải tất cả thông tin mà không làm mới trang. Trong trường hợp này, bạn có thể hiển thị các tab khác nhau cho tất cả các phần và bằng cách nhấp vào tab, nó tìm thấy nội dung tương ứng từ máy chủ back-end và cập nhật trang mà không cần làm mới trình duyệt. Điều này & nbsp; giúp bạn cải thiện trải nghiệm người dùng cuối tổng thể.

Cuộc gọi tổng thể AJAX hoạt động như thế này:

Hãy để nhanh chóng đi qua luồng Ajax thông thường:

  1. Đầu tiên, người dùng mở một trang web như bình thường với yêu cầu đồng bộ A & nbsp;
  2. Tiếp theo, người dùng nhấp vào phần tử DOM thông thường là một nút hoặc liên kết mà bắt đầu yêu cầu không đồng bộ đến máy chủ back-end. Người dùng cuối đã giành được thông báo này vì cuộc gọi được thực hiện không đồng bộ và không làm mới trình duyệt. Tuy nhiên, bạn có thể phát hiện ra các cuộc gọi AJAX này bằng một công cụ như FireBug.
  3. Để đáp ứng yêu cầu AJAX, máy chủ có thể trả về dữ liệu chuỗi XML, JSON hoặc HTML.
  4. Dữ liệu phản hồi được phân tích cú pháp bằng JavaScript.
  5. Cuối cùng, dữ liệu phân tích đã được cập nhật trong trang web & nbsp; dom.

Vì vậy, như bạn có thể thấy, trang web được cập nhật với dữ liệu thời gian thực từ máy chủ mà không tải lại trình duyệt.

Trong phần tiếp theo, chúng tôi sẽ làm thế nào để triển khai Ajax bằng Vanilla JavaScript.

Cách hoạt động của Ajax bằng Vanilla JavaScript

Trong phần này, chúng tôi sẽ thấy Ajax hoạt động như thế nào trong Vanilla JavaScript. Tất nhiên, có những thư viện JavaScript có sẵn giúp thực hiện các cuộc gọi Ajax dễ dàng hơn, nhưng nó luôn luôn thú vị khi biết những gì xảy ra dưới mui xe.

Hãy cùng xem mã JavaScript Vanilla sau đây, thực hiện cuộc gọi AJAX và nhận được phản hồi từ máy chủ một cách không đồng bộ.

var objXMLHttpRequest = new XMLHttpRequest[];
objXMLHttpRequest.onreadystatechange = function[] {
  if[objXMLHttpRequest.readyState === 4] {
    if[objXMLHttpRequest.status === 200] {
          alert[objXMLHttpRequest.responseText];
    } else {
          alert['Error Code: ' +  objXMLHttpRequest.status];
          alert['Error Message: ' + objXMLHttpRequest.statusText];
    }
  }
}
objXMLHttpRequest.open['GET', 'request_ajax_data.php'];
objXMLHttpRequest.send[];

Hãy cùng đi qua mã trên để hiểu những gì xảy ra sau hậu trường.

  1. Đầu tiên, chúng tôi khởi tạo & nbsp; ________ 10 & nbsp; đối tượng, chịu trách nhiệm thực hiện các cuộc gọi Ajax.
  2. Đối tượng & nbsp; Nó có thể chứa một trong bốn giá trị: & nbsp; ____ 13, & nbsp; ____ 14, & nbsp; ________ 15, và & nbsp; ________ 16.
  3. Chúng ta có thể thiết lập chức năng người nghe cho các thay đổi trạng thái bằng cách sử dụng thuộc tính & nbsp; ________ 17 & nbsp; Và đó là những gì chúng tôi đã thực hiện trong ví dụ trên: Chúng tôi đã sử dụng một hàm sẽ được gọi là mỗi khi tài sản trạng thái được thay đổi.
  4. Trong chức năng đó, chúng tôi đã kiểm tra xem & NBSP; Tiếp theo, chúng tôi đã kiểm tra xem mã trạng thái bằng & nbsp; ____ 20, điều đó có nghĩa là yêu cầu đã thành công. Cuối cùng, chúng tôi tìm nạp phản ứng được lưu trữ trong & nbsp; ________ 21 & nbsp; thuộc tính của & nbsp; ________ 10 & nbsp; object.
  5. Sau khi thiết lập trình nghe, chúng tôi bắt đầu yêu cầu bằng cách gọi & nbsp; & Nbsp; ________ 12 & nbsp; giá trị thuộc tính sẽ được đặt thành 1 sau cuộc gọi này.
  6. Cuối cùng, chúng tôi đã gọi & nbsp; ____ ____ 26 & nbsp; đối tượng của & nbsp; ________ 10 & nbsp;, thực sự gửi yêu cầu đến máy chủ. & Nbsp; ________ 12 & nbsp; giá trị thuộc tính sẽ được đặt thành 2 sau cuộc gọi này.
  7. Khi máy chủ phản hồi, cuối cùng nó sẽ đặt & nbsp; ________ 12 & nbsp; giá trị thành 4 và bạn sẽ thấy một hộp cảnh báo hiển thị phản hồi từ máy chủ.

Vì vậy, cách mà Ajax làm việc với Vanilla JavaScript. Phương pháp ở đây, sử dụng "các chức năng gọi lại" là cách truyền thống để mã hóa Ajax, nhưng một cách sạch hơn và hiện đại hơn là với những lời hứa.

Trong phần tiếp theo, chúng ta sẽ xem cách sử dụng đối tượng & nbsp; ____ 30 & nbsp; cho ajax.

Cách sử dụng lời hứa JavaScript cho Ajax

Lời hứa trong JavaScript cung cấp một cách tốt hơn để quản lý các hoạt động không đồng bộ và các cuộc gọi lại phụ thuộc vào các cuộc gọi lại khác. Trong JavaScript, & nbsp; ________ 30 & nbsp; là một đối tượng có thể có một trong ba trạng thái: đang chờ xử lý, giải quyết hoặc bị từ chối. Ban đầu, đối tượng & NBSP;

Hãy nhanh chóng sửa đổi ví dụ trước với & nbsp; ____ ____ 30 & nbsp; đối tượng.

function AjaxCallWithPromise[] {
    return new Promise[function [resolve, reject] {
        const objXMLHttpRequest = new XMLHttpRequest[];

        objXMLHttpRequest.onreadystatechange = function [] {
            if [objXMLHttpRequest.readyState === 4] {
                if [objXMLHttpRequest.status == 200] {
                    resolve[objXMLHttpRequest.responseText];
                } else {
                    reject['Error Code: ' +  objXMLHttpRequest.status + ' Error Message: ' + objXMLHttpRequest.statusText];
                }
            }
        }

        objXMLHttpRequest.open['GET', 'request_ajax_data.php'];
        objXMLHttpRequest.send[];
    }];
}

AjaxCallWithPromise[].then[
    data => { console.log['Success Response: ' + data] },
    error => { console.log[error] }
];

Khi chức năng & nbsp; ____ 34 & nbsp; nó được gọi, nó sẽ trả về đối tượng Promise và ban đầu nó ở trạng thái đang chờ xử lý. Dựa trên phản hồi, nó sẽ gọi & nbsp; ________ 35 & nbsp; hoặc & nbsp; ________ 36 & nbsp; function. & Nbsp;

Tiếp theo, chúng tôi sử dụng phương thức & nbsp; Phương thức & nbsp; ________ 37 & nbsp; có hai đối số. Đối số đầu tiên là một cuộc gọi lại sẽ được thực hiện khi lời hứa được giải quyết và đối số thứ hai là một cuộc gọi lại cho trạng thái bị từ chối.

Vì vậy, đó là cách bạn có thể sử dụng lời hứa của JavaScript cho AJAX. Trong phần tiếp theo, chúng tôi sẽ thấy cách sử dụng thư viện jQuery để thực hiện các cuộc gọi AJAX.

Cách hoạt động của Ajax bằng thư viện jQuery

Trong phần trước, chúng tôi đã thảo luận về cách bạn có thể thực hiện các cuộc gọi AJAX bằng Vanilla JavaScript. Trong phần này, chúng tôi sẽ sử dụng thư viện jQuery để chứng minh điều này. Tôi sẽ cho rằng bạn nhận thức được những điều cơ bản của thư viện jQuery.

Thư viện JQuery cung cấp một vài phương thức khác nhau để thực hiện các cuộc gọi AJAX, mặc dù ở đây chúng tôi sẽ xem xét phương thức Standard & nbsp; ________ 39 & nbsp;, thường được sử dụng nhất.

Hãy xem ví dụ sau.

$.ajax[
  'request_ajax_data.php',
  {
      success: function[data] {
        alert['AJAX call was successful!'];
        alert['Data from the server' + data];
      },
      error: function[] {
        alert['There was some error performing the AJAX call!'];
      }
   }
];

Như bạn đã biết, dấu hiệu & nbsp;

Tham số đầu tiên của phương thức & nbsp; ____ 39 & nbsp; là URL sẽ được gọi trong nền để tìm nạp nội dung từ phía máy chủ. Tham số thứ hai ở định dạng JSON và cho phép bạn & nbsp; chỉ định các giá trị cho một số tùy chọn khác nhau được hỗ trợ bởi & nbsp; ________ 39 & nbsp; phương thức.

Trong hầu hết các trường hợp, bạn sẽ & nbsp; cần chỉ định các cuộc gọi lại thành công và lỗi. Cuộc gọi lại thành công sẽ được gọi sau khi hoàn thành cuộc gọi AJAX thành công. Phản hồi được trả lại bởi máy chủ sẽ được chuyển cho cuộc gọi lại thành công. Mặt khác, cuộc gọi lại thất bại sẽ được gọi nếu có sự cố và có một vấn đề thực hiện cuộc gọi Ajax.

Vì vậy, như bạn có thể thấy, thật dễ dàng để thực hiện các hoạt động AJAX bằng thư viện jQuery. Trên thực tế, quá trình này ít nhiều giống nhau, không phân biệt thư viện JavaScript mà & nbsp; bạn chọn thực hiện các cuộc gọi AJAX.

Trong phần tiếp theo, chúng tôi sẽ thấy một ví dụ trong thế giới thực để hiểu cách thức này hoạt động với PHP.

Một ví dụ Ajax trong thế giới thực với PHP

Trong phần này, chúng tôi sẽ xây dựng một ví dụ lấy nội dung JSON từ tệp PHP ở phía máy chủ bằng AJAX.

Đối với mục đích trình diễn, chúng tôi sẽ xây dựng một ví dụ thực hiện đăng nhập người dùng bằng AJAX và JQuery. Để bắt đầu, hãy tạo tệp & nbsp; index.php & nbsp;, như được hiển thị trong đoạn sau, hiển thị một biểu mẫu đăng nhập cơ bản.index.php file, as shown in the following snippet, which renders a basic login form.







    
Username: Password:
$[document].ready[function[] { $['#loginform'].submit[function[e] { e.preventDefault[]; $.ajax[{ type: "POST", url: 'login.php', data: $[this].serialize[], success: function[response] { var jsonData = JSON.parse[response]; // user is logged in successfully in the back-end // let's redirect if [jsonData.success == "1"] { location.href = 'my_profile.php'; } else { alert['Invalid Credentials!']; } } }]; }]; }];

Tệp & nbsp; index.php & nbsp; là một biểu mẫu HTML khá tiêu chuẩn có chứa các trường tên người dùng và mật khẩu. Nó cũng chứa đoạn trích JavaScript của A & NBSP;, theo phác thảo mà chúng tôi đã thấy ở trên.index.php file is a pretty standard HTML form which contains username and password fields. It also contains a jQuery JavaScript snippet, which follows the outline we saw above.

Chúng tôi đã sử dụng & nbsp; ________ 43 & nbsp; sự kiện của phần tử biểu mẫu, sẽ được kích hoạt khi người dùng nhấp vào nút gửi. Trong bộ xử lý sự kiện đó, chúng tôi đã bắt đầu cuộc gọi AJAX, gửi dữ liệu biểu mẫu lên tệp & nbsp; login.php & nbsp; sử dụng phương thức POST không đồng bộ. Khi chúng tôi nhận được phản hồi từ máy chủ, chúng tôi phân tích nó bằng phương thức & nbsp; Và cuối cùng, dựa trên sự thành công hay thất bại, chúng tôi có hành động thích hợp.login.php file using the POST method asynchronously. Once we receive a response from the server, we parse it using the 

var objXMLHttpRequest = new XMLHttpRequest[];
objXMLHttpRequest.onreadystatechange = function[] {
  if[objXMLHttpRequest.readyState === 4] {
    if[objXMLHttpRequest.status === 200] {
          alert[objXMLHttpRequest.responseText];
    } else {
          alert['Error Code: ' +  objXMLHttpRequest.status];
          alert['Error Message: ' + objXMLHttpRequest.statusText];
    }
  }
}
objXMLHttpRequest.open['GET', 'request_ajax_data.php'];
objXMLHttpRequest.send[];
4 method of the 
var objXMLHttpRequest = new XMLHttpRequest[];
objXMLHttpRequest.onreadystatechange = function[] {
  if[objXMLHttpRequest.readyState === 4] {
    if[objXMLHttpRequest.status === 200] {
          alert[objXMLHttpRequest.responseText];
    } else {
          alert['Error Code: ' +  objXMLHttpRequest.status];
          alert['Error Message: ' + objXMLHttpRequest.statusText];
    }
  }
}
objXMLHttpRequest.open['GET', 'request_ajax_data.php'];
objXMLHttpRequest.send[];
5 object. And finally, based on the success or failure, we take the appropriate action.

Ngoài ra, hãy & nbsp; xem cái gì & nbsp; login.php & nbsp; trông giống như.login.php looks like.

Bài Viết Liên Quan

Chủ Đề