PHP AJAX - 没有在表单提交上获得价值

时间:2014-05-10 04:21:50

标签: php mysql ajax

我有这样的文件结构。

当我提交时,我收到错误:

Notice: Undefined index: course1 in C:\wamp\www\mysite\formprocess2.php on line 7

Notice: Undefined index: course2 in C:\wamp\www\mysite\formprocess2.php on line 8

Notice: Undefined index: course3 in C:\wamp\www\mysite\formprocess2.php on line 9  

我无法理解为什么会这样。

这是我的代码:

的index.php:

<html>
<head>
<script>
function showUser(str) {
  if (str=="") {
    document.getElementById("course").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("course").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","getcourse2.php?q="+str,true);
  xmlhttp.send();
}
</script>

</head>
<body>
<table width="850" border="1" align="center" >
<form action="formprocess2.php" method="POST" name="applicationform" id="applicationform"> 
<tr><td> <p>Application Form</p></td></tr>
<tr><td colspan="3">Name of the College where admission is sought :</td>
<td colspan="3"><select name="college" id="college" onchange="showUser(this.value)">
<option value="">----Select College----</option>
<?php
include("db_connect.php");
$select=mysql_query("select * from college");
while($data=mysql_fetch_array($select))
{
?> 
<option value="<?php echo $data['ID'];?>"><?php echo $data['collegename'];?></option>
<?php
}
?>
</select></td>
  </tr>
  <tr>
    <td colspan="3">Name of the Course applied for : </td>
    <td colspan="3" id="course"></td>
  </tr>
   <tr>
    <td colspan="3"><input type="submit" name="submit" id="submit" value="Submit"></td>
    <td colspan="3">&nbsp;</td>
  </tr>
  </form>
</table>
</body>
</head>
</html>

getcourse2.php:

<?php include('db_connect.php'); ?>
<?php 
for ($x=1; $x<4; $x++) {
  $course="course"."$x";
  ?>
<select name="<?php echo $course?>"id="<?php echo $course?>">
<?php
$q = intval($_GET['q']);
$sql = "SELECT course.coursename FROM course
INNER JOIN college 
ON college.ID=course.collegeID WHERE college.ID ='$q'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
?> 
<option value="<?php echo $row['coursename'];?>"><?php echo $row['coursename'];?></option>
<?php
}
?>
</select>
<?php
}?>

formprocess2.php:

<?php 
echo $college= $_POST["college"];
echo $course1= $_GET["course1"];
echo $course2=$_GET["course2"];
echo $course3= $_GET["course3"];
?>

这里出了什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您正在尝试获取$_GET数组中的数据,但您的表单方法是POST,因此您必须执行此操作:

<?php 



echo $college= $_POST["college"];
echo $course1= $_POST["course1"];
echo $course2=$_POST["course2"];
echo $course3= $_POST["course3"];

?>