是否可以使用PHP的ID更改HTML元素属性?

时间:2008-12-17 18:38:17

标签: php html

我想做这样的事情:

第A页有一个指向第B页的链接 页面B从数据库获取内容并对其进行处理 页面B的结果显示在第A页的div中

请注意,当页面B处理数据库的信息时,我不想离开页面A.

我真正想做的是避免在网站中使用框架,并且我想让网页显示在div中。这可能吗?

我猜它有点像一个新手问题,但这真的让我烦恼,我甚至不知道从哪里开始寻找。

8 个答案:

答案 0 :(得分:10)

你想要AJAX!

AJAX会这样做,但步骤将与您描述的步骤略有不同

  • 页面A有一个调用javascript函数的链接
  • javascript函数对页面B进行AJAX调用,该页面从数据库获取内容并对其进行处理
  • 页面B的结果返回到javascript函数
  • 页面a以div显示它

答案 1 :(得分:2)

您正在寻找的是JavaScript和AJAX。

答案 2 :(得分:1)

您想要做这个客户端而不是服务器端。我个人喜欢JQuery

您可能必须拥有Page B的简单版本。这很常见。如果您想要一些例子,请告诉我。

答案 3 :(得分:1)

这个例子可能有很多错误,但它应该让你走上正轨:)

档案a.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;

?>

file 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;
} 

答案 4 :(得分:0)

简答:不。

您需要一些客户端脚本或AJAX才能执行此操作。

答案 5 :(得分:0)

结帐XAJAX

它是一个用于PHP的AJAX库,它基本上可以满足您的需求 它编写了处理客户端方面所需的Javascript。

您将执行以下操作。 1.在您的php页面中包含XAJAX库。 2.注册您的功能 3.使用xajax_phpfunctionName()

从javascript调用客户端

答案 6 :(得分:0)

正如其他人所说,这需要通过某种AJAX设置来完成。如果您比PHP更熟悉PHP(或服务器端脚本而不是客户端脚本),我还建议您结帐XAJAX。 [这是亚当在我回答的时候发布的。]

答案 7 :(得分:0)

好吧,我最初想要做的是让PHP将页面的HTML(和PHP)内容转储到另一个页面上的DIV(听起来很奇怪,我知道)。你这样做的方法是使用这个函数:

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

如果这样做,它将解析$ filename文件中的PHP并将结果返回到字符串中。要使其转储并显示内容,只需删除最后一行。

我有点新手,这可能不是最好的方法,但它对我有用。希望它有所帮助。