簡體   English   中英

Php 將內容回顯為 div

[英]Php echo content into div

我正在嘗試將在 php 中生成的 html 和 javascript 插入到頁面中的 div 中。

a.php 文件:

function get_preset() {
    return (bunch of html, javascript);
}

b.php:

<div id="preset_preview">
    //<?php echo get_preset(); ?> //this works well, but I need to execute this every time I click a button in jquery.
</div>

我可以使用 ajax 在我的 jquery 和 a.php 之間成功進行通信,但是如何將 php 中 get_preset 函數調用的返回內容放入 preset_preview div 中?

有沒有辦法做到這一點,而無需將來自 get_preset 函數調用的 ajax 數據發送到 jquery,然后使用 jquery 將其放入 preset_preview div 中?

每次從 jquery 請求這樣的請求時,php 都能以某種方式單獨完成嗎?

所以我使用jquery ajax調用php來執行這個:

<div id="preset_preview">
    <?php echo get_preset(); ?>
</div>

讓我感到困惑的是,php 可以成功完成(如上例所示),而無需先將 ajax 數據發送到 jquery。

一個.php文件

function get_preset() {
    return (bunch of html, javascript);
}

echo get_preset();

b.php 文件

<button type="button" id="preview">Preview Preset</button>
<div id="preset_preview">
    <?php include "a.php"; ?>
</div>

<script>
    $('#preview').on('click', function(e) {
        e.preventDefault();
        $("#preset_preview").load('a.php');
    });
</script>

您可以實際使用多種 jQuery AJAX 方法。 上面的例子是使用load() ,它用 get 方法包裝你的請求(你可以通過調用ajaxSetup()來覆蓋它的請求方法,無論如何)到 a.php 的相對 URL。

您可以看到 a.php echo ing (string of?) get_preset()函數,然后該函數將放置在 b.php 文件中的<div id="preset_preview">中。


在這種情況下擴展 AJAX 的需求是因為 PHP 只做類似的事情

  1. 獲取請求,無論使用什么方法(get、post、put 等)
  2. 返回響應。 通常在你做了一些與請求值相關的邏輯之后。

每當您的預期響應呈現給客戶端時,它就會死亡。 響應返回后,您無法立即在牆后執行任何魔術。 換句話說,需要頁面加載。

然后 AJAX 來幫助您創建另一個對相應 PHP 文件的請求。 它恢復一個 PHP 文件來執行(另一個)請求 -> 執行一些邏輯 -> 然后返回它。 無聲無息,沒有頁面加載。

並回應評論——這可以通過函數調用以某種方式完成,而無需在 preset_preview 中包含實際的 php 文件嗎?

都是的。 只要您提供呼叫者需要的任何服務。

一個.php文件

function get_preset() {
    return (bunch of html, javascript);
}

echo get_preset();

a.php 只是echo ing get_preset()

b.php

<button type="button" id="preview">Preview Preset</button>
<div id="preset_preview"></div>

<script>
    $('#preview').on('click', function(e) {
        e.preventDefault();
        $("#preset_preview").load('a.php');
    });
</script>

b.php 文件只是對 a.php 文件進行請求。 每當單擊帶有選擇器 id #preview的按鈕時,它將加載任何 a.php 內容到#preset_preview

您還可以在頁面准備好后立即呈現 a.php 的內容。 這與我上面寫的第一個片段類似。

<script>
    $(document).ready(function() {
        $('#preset_preview').load('a.php');
    });

    $('#preview').on('click', function(e) {
        e.preventDefault();
        $("#preset_preview").load('a.php');
    });
</script>

它只是告訴您應該在 b.php 頁面准備好后立即加載 a.php 並在單擊按鈕后“重新加載”它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM