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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Alipay Php ...

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.
