使用ajax将JavaScript数据传输到PHP

时间:2013-12-04 15:54:29

标签: javascript php ajax

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 ...请根据我的数据向我显示一些代码..非常感谢..

3 个答案:

答案 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。在这里,您将找到应该使用警报的位置。