xmlhttp.responseText返回脚本标记的内容

时间:2014-06-04 05:26:16

标签: javascript php ajax

    <script>
function refresh_event(){//CALLED WHEN EVENT IS CHANGED
    document.getElementById("frm_event").submit();
}

function click1(i,stuid){//AJAX CODE
    var obj = document.getElementById("event");
    var eid = obj.options[obj.selectedIndex].value;
    var xmlhttp;

    var j=document.getElementById("link"+i).innerHTML;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    }
    else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            //alert("in");
            document.getElementById("link"+i).innerHTML=xmlhttp.responseText;
        //  alert(xmlhttp.responseText);
        }
    }

    //alert("a"+j+"b");
    xmlhttp.open("GET","register.php?i="+j+"&sid="+stuid+"&eid="+eid+"&val=1&t="+Math.random(),true);
    xmlhttp.send();
}
</script>
<?php 
if($val==0){//LANDING PAGE
?>
<?php
    if(mysqli_connect_errno()){
        echo "connection error";
    }
    $query="select name,eid from event_info";
    $result = mysqli_query($con,$query);
?>
<!-- CODE TO POPULATE EVENT LIST -->
<form id="frm_event" method="GET" action="register.php">
    Events:<select id="event" name="event" onchange="refresh_event()">
    <?php
        if($event==0){
    ?>
    <option value=0 selected> --select-- </option> <!-- IF NOTHING IS SELECTED -->
    <?php
        }else{
    ?>
    <option value=0> --select-- </option>   <!-- IF EVENT IS SELECTED -->
    <?php
        }
    ?>
    <?php
        while($row=mysqli_fetch_array($result)){ //FETCH EVENT FROM DATABASE
            if($event==$row['eid']){
    ?>
    <option value=<?=$row['eid'] ?> selected> <?=$row['name'] ?> </option>
    <?php
            }
            else{
    ?>
    <option value=<?=$row['eid'] ?>> <?=$row['name'] ?> </option>
    <?php
            }
        }
    ?>
    </select>
</form>
<?php
    $query="select stuid,name from stud_info";
    $result = mysqli_query($con,$query);
    $i=1;
?>
<br>
<table>
    <?php
        if($event==0){//IF EVENT IS NOT SET
    ?>
    <?php
            while($row=mysqli_fetch_array($result)){
    ?>
    <tr>
        <td> 
            <p><?=$row['name'] ?></p>
        </td>
        <td>
            <a href="javascript:click1(<?=$i ?>,<?=$row['stuid'] ?>);" name="link<?=$i ?>" id="link<?=$i ?>">Assign</a>
            <!--<a href="javascript:void(0);"  id="link<?=$i ?>" onclick="click()"> Assign 1</a>-->
        </td>
    </tr>
    <?php
                $i++;
            }
        }
        else{//IF EVENT IS SET
    ?>
    <?php
            while($row=mysqli_fetch_array($result)){//FETCH REGISTERED STUDENT FROM DATABASE
                $regid=0;
                $stuid=$row['stuid'];
                $query_event="select regid from event_register where stuid='$stuid' and eid='$event'";
                $result_event=mysqli_query($con,$query_event);
                $count1 = mysqli_num_rows($result_event);
    ?>
    <tr>
        <td> 
            <p><?=$row['name'] ?></p>
        </td>
        <td>
            <?php
                if($count1>0){//IF STUDENT IS REGISTERED FOR THIS EVENT
            ?>
                <a href="javascript:click1(<?=$i ?>,<?=$row['stuid'] ?>);" name="link<?=$i ?>" id="link<?=$i ?> name=">Remove</a>
            <?php
                }
                else{
            ?>
                <a href="javascript:click1(<?=$i ?>,<?=$row['stuid'] ?>);" name="link<?=$i ?>" id="link<?=$i ?>">Assign</a>
        </td>
    </tr>
    <?php
                }
                $i++;
            }
        }
    ?>
</table>
<?php
}
else{
    //$_GET['change']="new";
    $val=0;//RESET THE VALUE
    $var =$_GET['i'];
    $sid = $_GET['sid'];
    $eid = $_GET['eid'];
    if($var=="Assign"){
    //INSERT QUERY
        $query="insert into event_register (stuid,eid) values ('$sid','$eid')";
        $result = mysqli_query($con,$query);
        echo "Remove";
    }
    else{
    //delete
        $query="delete from event_register where stuid='$sid' and eid='$eid'";
        $result = mysqli_query($con,$query);
        //if(mysqli_affected_rows($con)>0){
            echo "Assign";
        //}
        /* else{
            echo "Assign";
        } */
    //return "return";
    }
}
?>

这是我的代码。使用php和javacript。尝试使用ajax从数据库中获取值。但是xmlhttp.responseText返回的值给出了问题。

以上是脚本标记的部分内容。 xmlhttp.responseText返回脚本标记的全部内容,包括标记本身。

尝试将getElementbyId更改为getElementsbyName仍然没有运气。

在ajax调用上执行的代码部分就在最后。

非常感谢anyhelp。

1 个答案:

答案 0 :(得分:-1)

我不确定为什么会发生在您身上,但由于以下原因,它发生在我身上:我已将我的js和php文件命名为相同的名称,例如“ script”,然后在我的js文件中说“ script.js”,而不是将处理程序url设置为script.php,而是将其设置为script.js,因此,如我在script.php中可能的位置,回显“ resp on my php script”,而不是整个文本我的js文件被读出。