在ajax中包含php文件时,Javascript无效
发布时间:2020-12-16 02:56:08 所属栏目:百科 来源:网络整理
导读:我有一个下拉选择列表和一个按钮,我在其中插入了一个onclick事件,这样每当有人点击该按钮时,它将调用一个基本上包含ajax的函数,当执行它时将包含一个php文件.在我的php文件中,它从所选的下拉列表中获取值,然后它将显示一个警告选项,但它不显示任何警报. 以下
我有一个下拉选择列表和一个按钮,我在其中插入了一个onclick事件,这样每当有人点击该按钮时,它将调用一个基本上包含ajax的函数,当执行它时将包含一个php文件.在我的php文件中,它从所选的下拉列表中获取值,然后它将显示一个警告选项,但它不显示任何警报.
以下是我的代码: – <html> <head> <script> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+,Firefox,Chrome,Opera,Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6,IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","user.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select name="users1" onchange="showUser(this.value)"> <option value="">Select a person:</option> <option value="1">Peter Griffin</option> <option value="2">Lois Griffin</option> <option value="3">Glenn Quagmire</option> <option value="4">Joseph Swanson</option> </select> </form> <br> <div id="txtHint"><b>Person info will be listed here.</b></div> </body> </html> user.php的 <?php $q=$_GET["q"]; if($q ==1) { echo '<script type="text/javascript"> alert("Hello") </script>'; } else { echo "No"; } ?> 任何帮助将不胜感激,并感谢您的帮助提前:) 解决方法
因此,正如Chris已经指出的那样,如果你使用你所描述的AJAX调用来返回一些文本,你可以将它放在你的页面中,并进行DOM更新,例如:
document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 这样可行.但是如果你的responseText包含javascript,它只会被发布到文档中.您的页面已经完成加载,因此不会执行. 但是,您显然希望从AJAX调用中产生两种行为.除了将一组用户数据发布到txtHint div之外,您还希望弹出一个警报.为此,您可以在发布到txtHint div的点之后,在onreadystatechange函数中放置警报的代码. 从您的问题中不清楚您想要控制警报的逻辑.如果您希望警报为选择的某些选项说“Hello”而对其他选择说“No”,那么您可以只测试您的选择输入: if (str=="1") alert("Hello"); else alert("No"); 相反,如果警报的内容应该取决于您的AJAX调用返回的内容,那么您将有一些基于xmlhttp.responseText的其他逻辑.也许您甚至会将警报的主体写入user.php发回的响应中.然后你可以从responseText中解析出来,在你的警报中使用它,将其删除,然后使用其余的来设置txtHint的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 我如何获得存储在PostgreSQL中特定模式的数据库中的所有函数
- ruby-on-rails-3 – 为什么Rails控制器操作方法需要参数
- c – 使用&front()修改std :: string中的基础字符数组
- AJAX应用【股票案例、验证码校验】
- RAC cache fusion机制实现原理分析
- c# – 如何在运行时将文件注入EXE并在程序运行期间引用该文
- c# – 使用Ninject过滤构造器注入
- 关于如何去掉fragment_main.xml文件
- c – std :: greater()和std :: greater之间的区别?
- 原型 – 是否有AJAX启动/停止事件全局触发AJAX模态等待消息
推荐文章
站长推荐
热点阅读