getElementsByTagName问题求解
<html><head><?php $username=$_GET['username']; $username=trim($username);//去掉空格 session_start(); $loginuser=$_SESSION['loginuser'];?><meta http-equiv="content-type" content="text/html;charset=utf-8"/><script src="my.js"></script><script> window.resizeTo(500,400); window.setInterval("getMessage()",5000); function getMessage(){ var myXmlHttpRequest=getXmlHttpObject(); if(myXmlHttpRequest){ var url="GetMessageControl.php"; var data="getter=<?php echo $loginuser; ?>&sender=<?php echo $username; ?>"; myXmlHttpRequest.open("post",url,true); myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //重点。指定处理结果的 函数 myXmlHttpRequest.onreadystatechange=function (){ if(myXmlHttpRequest.readyState==4){ if(myXmlHttpRequest.status==200){ var mesRes=myXmlHttpRequest.responseXML; var cons=mesRes.getElementsByTagName("con"); var sendTimes=mesRes.getElementsByTagName("sendTime"); window.alert(cons.length); if(cons.length!=0){ for(var i=0;i<cons.length;i++){ $('mycons').value+="<?php echo $username; ?>对<?php echo $loginuser; ?>说:"+cons[i].childNodes[0].nodeValue+" "+sendTimes[i].childNodes[0].nodeValue; } } } } } myXmlHttpRequest.send(data); } } function sendMessage(){ var myXmlHttpRequest=getXmlHttpObject(); if(myXmlHttpRequest){ var url="SendMessageControl.php"; //js中使用php数据 var data="con="+$('con').value+"&getter=<?php echo $username; ?>&sender=<?php echo $loginuser; ?>"; window.alert(data); myXmlHttpRequest.open("post",url,true); myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); myXmlHttpRequest.onreadystatechange=function (){ if(myXmlHttpRequest.readyState==4){ if(myXmlHttpRequest.status==200){ } } } myXmlHttpRequest.send(data); } }</script></head><center><h1 id="聊天室-您正在和-font-nbsp-color-red-php-nbsp-echo-nbsp-username-nbsp-font-聊天">聊天室(您正在和<font color="red"><?php echo $username; ?></font>聊天)</h1> <textarea cols="30" rows="10" id="mycons"></textarea><br> <input type="text" style="width:200px" id="con"> <input type="button" value="send" onclick="sendMessage()"></center></html>
<?php include 'SqlHelper.class.php'; class MessageService{ //将数据信息添加到数据库 function addMessage($sender,$getter,$con){ $sql="insert into message (sender,getter,content,sendTime) values('$sender','$getter','$con',now())"; // file_put_contents("d:/test.txt","sql=".$sql."\r\n",FILE_APPEND); $sqlHelper=new SqlHelper(); return $sqlHelper->execute_dml($sql); } //获取信息,并把数据组装好返回给客户端(聊天室) function getMessage($getter,$sender){ $sql="select * from message where getter='$getter' and sender='$sender' and isGet=0"; $sqlHelper=new SqlHelper(); $array=$sqlHelper->execute_dql2($sql); $messageInfo="<meses>"; for($i=0;$i< count($array);$i++){ $row=$array[$i]; $messageInfo.="<mesid>{$row['id']}</mesid><sender>{$row['sender']}</sender><getter>{$row['getter']}</getter><con>{$row['content']}</con><sendTime>{$row['sendTime']}</sendTime>"; } $messageInfo.="</meses>"; file_put_contents("d:/test.txt",$messageInfo."\r\n",FILE_APPEND); $sqlHelper->close_connect(); return $messageInfo; } }
<?php//这个控制器专门响应用户取数据的请求 header("conntent-type:text/xml;charset=utf-8"); header("Cache-Control:no-cache"); $getter=$_POST['getter']; $sender=$_POST['sender']; // file_put_contents("d:/test.txt",$sender."-".$getter,FILE_APPEND); require_once 'MessageService.class.php'; $messageService=new MessageService(); $mesList=$messageService->getMessage($getter,$sender);// file_put_contents("d:/test.txt","news--".$mesList."\r\n",FILE_APPEND); echo $mesList;?>
为什么在第一段函数getMessage()中
var cons=mesRes.getElementsByTagName("con");
alert时为0.数据库中有添加了记录
我看的是韩顺平的php视频。
求大神搭救
回复讨论(解决方案)
在IE中getElementsByName()是根据ID来取的,但在其他浏览器中,是正常按name属性来取的,因此如果你的代码运行在非IE浏览器上,就会出现取不到值的现象
抱歉,没留意你写的是 getElementsByTagName() 你应该改成 getElementById()
var cons=mesRes.getElementById("con");
var sendTimes=mesRes.getElementById("sendTime");
另外你还有不少低级的错误
$('mycons').value+="对说:"+cons[i].childNodes[0].nodeValue+" "+sendTimes[i].childNodes[0].nodeValue;
php代码是不会被客户端浏览器执行的,而且你得到的 cons, sendTimes 都只是一个DOM对象,而不是一个结果集
抱歉,没留意你写的是 getElementsByTagName() 你应该改成 getElementById()
var cons=mesRes.getElementById("con");
var sendTimes=mesRes.getElementById("sendTime");
另外你还有不少低级的错误
$('mycons').value+="
很感谢你的指导。新手呢,我今天知道问题出在哪了
header("conntent-type:text/xml;charset=utf-8"); header("Cache-Control:no-cache");
这里是content-type打多了个n

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...
