2008-12-17 166 views
2

我想要做這樣的事情:是否可以使用PHP的ID來更改HTML元素屬性?

頁A有指向網頁B的鏈接
網頁B從數據庫中獲取內容並處理它
從網頁B的結果顯示在網頁A

一個div

請注意,我不想離開頁面A,而頁面B處理數據庫的信息。

我真的想要做的是避免在網站中使用框架,並且我想讓頁面出現在div。這可能嗎?

我在猜測它的一個新手問題,但它真的很煩人,我甚至不知道從哪裏開始尋找。

+0

我認爲值得注意的是,PHP所做的所有工作,它在您向客戶端發送任何內容之前都會執行。它發揮了它的所有魔力,打包了頁面,然後將其發送給客戶端。稍後改變事情需要其他東西,比如AJAX。 – Hober 2008-12-17 20:53:07

回答

10

你想要AJAX!

AJAX會做到這一點,但步驟會從你的描述

  • 頁A有調用javascript函數
  • 的JavaScript功能,使一個AJAX調用網頁B的鏈接有一點不同其中從數據庫中獲取內容並處理它
  • 從網頁B的結果被返回到javascript函數
  • 頁顯示在一個div
2

你在找什麼是JavaScript和AJAX。

+0

我無法真正使用......這是爲了在學校上課,我真的需要使用PHP:S – Joum 2008-12-17 18:44:27

1

你想做這個客戶端而不是服務器端。我個人喜歡JQuery

您可能必須擁有Page B的簡單版本。這很常見。讓我知道你是否想要一些例子。

0

簡答題:沒有。

您將需要一些客戶端腳本或AJAX來執行此操作。

0

結帳XAJAX

它的PHP AJAX庫,它將基本上做你想做的。
它寫入處理客戶端的東西所需的Javascript。

您將執行以下操作。 1.在你的php頁面中包含XAJAX庫。 2.註冊你的函數 3.使用xajax_phpfunctionName()從javascript調用它們在客戶端調用它們

0

正如其他人所說的,這需要通過某種AJAX設置完成。如果您比PHP更熟悉PHP(或服務器端腳本而不是客戶端腳本),我還建議您結帳XAJAX。 [其中被張貼亞當,因爲我是在回答]

1

有可能是不對的例子數不勝數的事情,但它應該讓你失望了正軌:)

文件。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: &quot;'.htmlentities($datatoprocess).'&quot;'; 
     } 
    } 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; 
} 
0

那麼,我本來想要做的是讓PHP轉儲HTML(和PHP)一個頁面的內容在另一個頁面上的DIV上(聽起來很奇怪,我知道)。你這樣做的方式是使用此項功能:

ob_start(); 
include($filename); 
$return_str = ob_get_contents(); 
ob_end_clean(); 

如果你不喜歡它的話,它會解析在$文件名文件的PHP和一個字符串返回結果。要使其轉儲並顯示內容,只需刪除最後一行。

我有點新鮮,這可能不是最好的方式來做到這一點,但它爲我工作。希望能幫助到你。

相關問題