Hướng dẫn run php on same page - chạy php trên cùng một trang

Tôi có một tập lệnh PHP tải xuống tệp đính kèm email hàng ngày từ Cron. Tôi muốn tạo một biểu mẫu HTML có thể được sử dụng để chạy tập lệnh này và các hình thức khác theo cách thủ công khi cần thiết.

Khi tập lệnh chạy, có một vòng lặp hiển thị số lượng email đã được chạy qua và sau đó ở cuối echos mà tập lệnh đã hoàn thành chạy.

Tôi muốn có thể làm cho nó để một khi nút được nhấn trên biểu mẫu, một cửa sổ sẽ hiển thị các đầu ra này để người dùng biết khi tập lệnh đã chạy xong.

Hình thức đơn giản mà tôi có cho đến nay:


    

Có thể đạt được điều này không? Ngay bây giờ, cách tốt nhất tôi có thể nghĩ đến việc đó là chuyển hướng trở lại trang biểu mẫu sau khi tập lệnh hoàn thành chạy Chạy, ngay trước mặt họ.

Hỏi ngày 2 tháng 8 năm 2017 lúc 9:54Aug 2, 2017 at 9:54

Thật đơn giản để đạt được điều đó. Tham khảo mã mẫu sau:





     
        
     


Tập lệnh PHP sẽ chỉ chạy nếu nút gửi được nhấp.

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 10:17Aug 2, 2017 at 10:17

Nếu bạn đang sử dụng jQuery thì bạn có thể sử dụng AJAX của JQuery, đó là một chức năng đơn giản trả về kết quả của trang.

JavaScript này sẽ chạy ngay khi trang tải:

$[document].ready[function[] {
    //tell the user that the script is still running

    $.ajax[{
        type: "POST",
        url: "getAttachments.php",
        success: function[data] {
            //data will contain the output from the page
        },
        complete: function[] {
            //tell the user that the script has finished running
    }];
}];

Bạn không cần jQuery để sử dụng Ajax, nhưng nó làm cho nó dễ dàng hơn và gọn gàng hơn nhiều. Bạn có thể xem phiên bản mà không cần jQuery ở đây: //www.w3schools.com/xml/ajax_intro.asp

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 10:08Aug 2, 2017 at 10:08

RyanryanRyan

3669 Huy hiệu bạc22 Huy hiệu Đồng9 silver badges22 bronze badges

Có bạn có thể với một bài kiểm tra như:

if [!empty[$_POST]] {
   // code to display your emails
}else{
   //code to display the from
} 

Vì vậy, bạn sẽ luôn ở trên cùng một trang và đó là PHP quyết định những gì nên được hiển thị cho người dùng, không cần chuyển hướng hoặc bất cứ điều gì

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 10:00Aug 2, 2017 at 10:00

user10089632user10089632user10089632

4,8841 Huy hiệu vàng24 Huy hiệu bạc34 Huy hiệu đồng1 gold badge24 silver badges34 bronze badges

Chỉ là một sự làm rõ về những gì đang diễn ra. . .

Khi bạn làm điều này

Thêm HTML

More HTML

Đây là một việc sử dụng PHP hợp lệ [mặc dù không phải tất cả hiệu quả]. Nhưng khi bạn cố gắng sử dụng Header [], bạn sẽ luôn gặp lỗi đó vì dòng đầu tiên ở trên - "" là đầu ra trang. Máy chủ gửi một tiêu đề loại nội dung. Vì vậy, khi bạn cố gắng in một tiêu đề vị trí, đã quá muộn, "các tiêu đề đã được gửi."

Đối với điều này,

Tôi nghĩ rằng nó nói, "Nếu có một địa chỉ email, thì hãy nói điều gì đó như, 'Email đã đăng ký?' khác thêm nó? "

Đóng. Khi bạn đăng một biểu mẫu, nó đăng dữ liệu lên máy chủ. Dữ liệu đó, cho Mẫu Phương thức = "Post", có mặt trong biến PHP $ _POST. Vì vậy, những gì nó nói là "Nếu ai đó đã đăng biểu mẫu này, 'làm điều gì đó', nếu không thì hiển thị biểu mẫu."

"Thêm nó" là một chủ đề toàn bộ. Bạn phải làm sạch dữ liệu và cũng kiểm tra xem nó có tồn tại trong cơ sở dữ liệu không, sau đó thêm nó. Tất cả những gì đi vào bên trong "If" đầu tiên, nhưng để hữu ích, chúng ta cần thay đổi logic của mình một chút. Nếu có lỗi, chúng tôi muốn hiển thị biểu mẫu.


Bài Viết Liên Quan

Chủ Đề