[英]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 只做類似的事情
每當您的預期響應呈現給客戶端時,它就會死亡。 響應返回后,您無法立即在牆后執行任何魔術。 換句話說,需要頁面加載。
然后 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.