我想要做這樣的事情:是否可以使用PHP的ID來更改HTML元素屬性?
頁A有指向網頁B的鏈接
網頁B從數據庫中獲取內容並處理它
從網頁B的結果顯示在網頁A
請注意,我不想離開頁面A,而頁面B處理數據庫的信息。
我真的想要做的是避免在網站中使用框架,並且我想讓頁面出現在div
。這可能嗎?
我在猜測它的一個新手問題,但它真的很煩人,我甚至不知道從哪裏開始尋找。
我想要做這樣的事情:是否可以使用PHP的ID來更改HTML元素屬性?
頁A有指向網頁B的鏈接
網頁B從數據庫中獲取內容並處理它
從網頁B的結果顯示在網頁A
請注意,我不想離開頁面A,而頁面B處理數據庫的信息。
我真的想要做的是避免在網站中使用框架,並且我想讓頁面出現在div
。這可能嗎?
我在猜測它的一個新手問題,但它真的很煩人,我甚至不知道從哪裏開始尋找。
你想要AJAX!
AJAX會做到這一點,但步驟會從你的描述
你想做這個客戶端而不是服務器端。我個人喜歡JQuery
您可能必須擁有Page B的簡單版本。這很常見。讓我知道你是否想要一些例子。
簡答題:沒有。
您將需要一些客戶端腳本或AJAX來執行此操作。
結帳XAJAX。
它的PHP AJAX庫,它將基本上做你想做的。
它寫入處理客戶端的東西所需的Javascript。
您將執行以下操作。 1.在你的php頁面中包含XAJAX庫。 2.註冊你的函數 3.使用xajax_phpfunctionName()從javascript調用它們在客戶端調用它們
正如其他人所說的,這需要通過某種AJAX設置完成。如果您比PHP更熟悉PHP(或服務器端腳本而不是客戶端腳本),我還建議您結帳XAJAX。 [其中被張貼亞當,因爲我是在回答]
有可能是不對的例子數不勝數的事情,但它應該讓你失望了正軌:)
文件。PHP
<html>
<body>
<script type="text/javascript" src="stuff.js"></script>
Data to process please: <input type="text" name="datatoprocess" id="datatoprocess" />
<br />
<input type="button" value="Do Something" onclick="dostuff();" />
<hr />
<div id="resultarea">
</div>
</body>
</html>
文件b.php
<?php
$message = '';
if (isset($_REQUEST['datatoprocess'])) {
$datatoprocess = $_REQUEST[ 'datatoprocess' ];
if (strlen($datatoprocess) > 0) {
if ($datatoprocess == 'foo') {
$message = '<span style="color:#ffff00;background:#ff0000;">bar</span>';
} else {
$message = 'You sent me: "'.htmlentities($datatoprocess).'"';
}
} else {
$message = 'That is really short data.';
}
} else {
$message = 'No data to process in request?';
}
echo $message;
?>
文件stuff.js
// poor man quick and dirty ajax :|
function dostuff() {
var xmlHttp=GetXmlHttpObject();
if (xmlHttp==null) {
alert ("Browser does not support HTTP Request.");
return;
}
var datatoprocess = document.getElementById('datatoprocess').value;
var url="b.php"
+"?datatoprocess=" + escape(datatoprocess)
;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
var AjaxAnswer = xmlHttp.responseText ;
document.getElementById('resultarea').innerHTML = AjaxAnswer;
}
};
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function GetXmlHttpObject() {
var objXMLHttp=null;
if (window.XMLHttpRequest) {
objXMLHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
那麼,我本來想要做的是讓PHP轉儲HTML(和PHP)一個頁面的內容在另一個頁面上的DIV上(聽起來很奇怪,我知道)。你這樣做的方式是使用此項功能:
ob_start();
include($filename);
$return_str = ob_get_contents();
ob_end_clean();
如果你不喜歡它的話,它會解析在$文件名文件的PHP和一個字符串返回結果。要使其轉儲並顯示內容,只需刪除最後一行。
我有點新鮮,這可能不是最好的方式來做到這一點,但它爲我工作。希望能幫助到你。
我認爲值得注意的是,PHP所做的所有工作,它在您向客戶端發送任何內容之前都會執行。它發揮了它的所有魔力,打包了頁面,然後將其發送給客戶端。稍後改變事情需要其他東西,比如AJAX。 – Hober 2008-12-17 20:53:07