raise.js:
window.onload=init;
function init(){
var submit=document.getElementById("submit");
submit.onclick=sub;
}
function sub(){
var url="raise.php";
var title=document.getElementById("title");//title of a question
var content=document.getElementById("inputContent");//content of a question
var checktype=document.getElementsByName("type");
var type;//type of a question
if(checktype[0].checked){
type="java";
}
else if(checktype[1].checked){
type="c++";
}
else{
type="html";
}
var point=document.getElementsByTagName("select");
var reward=point[0].value;//reward point
url=url+"?title="+title.value;
url=url+"?content="+content.value;
url=url+"?type="+type;
url=url+"?reward="+reward;
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
alert("asde");
}
}
xmlhttp.open("GET",url,true);
xmlhttp.setRequestHeader("Content-Type","utf-8");
xmlhttp.send();
}
raise.php:
<?php
echo "<script>alert('123')</script>";
$title=$_GET['title'];
$content=$_GET['content'];
$reward=$_GET['reward'];
$type=$_GET['type'];
?>
让我困惑警报('123')没有被执行但是警告(“asde”),我想知道为什么......我在尝试用php检索这些数据时是对的......我不是非常熟悉ajax ...请根据我的数据向我显示一些代码..非常感谢..
答案 0 :(得分:0)
除非脚本元素是呈现的HTML文档的一部分,否则它不会执行任何操作。
服务器将其返回给浏览器,然后它位于xmlhttp.responseText
,您忽略它。
(也就是说,即使你没有忽略它,你might still have problems)。
答案 1 :(得分:0)
您根本没有将响应正文(JavaScript)附加到您的DOM,请尝试:
// ...
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
alert("asde");
alert(xmlHttp.responseText);
// here you have to attach xmlHttp.responseText to your DOM
}
}
// ...
这应该提醒您“asde”以及之后的“script&gt; alert('123')/ script&gt;”
答案 2 :(得分:0)
最好将Jquery与Ajax一起用于POST或GET数据,而不仅仅是Ajax。你可以看看jquery ajax。在这里,您将找到应该使用警报的位置。