我試圖在我們的網站上隱藏我們的郵寄地址,直到有人點擊一個按鈕來“加載”地址。我這樣做如下:
主頁.php:
<button onclick="test()"> Click </button>
<div> </div>
<script>
function test(){
$.ajax({url:"address.php", success:function(result){
$("div").text(result);}
})
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
地址.php:
<?php
function php_func(){
echo '<span><?php echo $address; ?></span>';
}
php_func();
?>
這適用于將文本回顯到 homepage.php,但它不加載 PHP 函式。只是將函式顯示為文本,如下所示:

我試過$("div").write(result);}了,它甚至不會加載。
$address 已在別處定義。有小費嗎?
uj5u.com熱心網友回復:
您正在嘗試撰寫輸出代碼的代碼,該代碼輸出地址。為什么?您已經處于從 PHP 代碼輸出某些內容的背景關系中:
echo "something...";
如果您要輸出的是 的值,$address則只需輸出:
echo "<span>$address</span>";
我懷疑您這樣做的原因是因為您希望當前加載的頁面能夠決議并執行該 PHP 代碼。這是對這些技術如何作業的根本誤解。該頁面的 PHP 代碼在服務器上執行一次,并將生成的 HTML/CSS/JavaScript 傳遞給客戶端。
AJAX 操作正在向另一個 PHP 資源發出新的單獨請求,該資源將在服務器上執行并輸出回客戶端。在這種情況下,它只是輸出一個字串值,然后客戶端 JavaScript 代碼會將其寫入頁面上的元素:
$("div").text(result);
(這是您使用瀏覽器的除錯工具并在網路選項卡中觀察 AJAX 請求/結果的好機會,以查看實際發送/接收的內容。實際的 PHP 代碼在任何時候都不應該對瀏覽器可見。所有在服務器上執行。)
這很重要的原因是,如果是這種情況,那么您可能會誤解 where$address的定義。如果它是在呈現您正在查看的頁面的 PHP 腳本中定義的,那并不意味著它是在address.php. 如果您向我們展示的代碼address.php是整個頁面,則$address 未定義。
所以你需要$address在那個頁面上定義。
說了這么多之后……您可能會發現一開始就完全不涉及 AJAX 會容易得多。只需將地址輸出到頁面,但將其設定<span>為不可見。然后當用戶單擊按鈕時,使其可見。不需要一個全新的 HTTP 請求的復雜性:
$('button').click(function () {
$('span').show();
});
span {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Click</button>
<span>this is the address</span>
uj5u.com熱心網友回復:
您不使用<?php echo內部字串;僅當您在輸出文字文本的腳本部分中使用,而不是執行 PHP 代碼。
如果你在做 PHP 代碼echo,你可以使用變數替換或連接。
<?php
function php_func(){
echo "<span>$address</span>";
}
php_func();
?>
您需要額外的代碼來設定$address變數;我假設您只是為了簡化問題而忽略了這一點。
uj5u.com熱心網友回復:
<?php
function php_func(){
echo '<span>' . $address .'</span>';
}
php_func();
?>
這應該作業,你不能使用“回聲”和內部回聲打開“PHP”標簽再次使用....更多另一個“回聲”
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454711.html
下一篇:將表資料拆分為頁面
