0

我正在尝试将 ajax 应用于我的 php 代码。但是,当我单击按钮时,我无法得到任何响应。这意味着我声明的 ajax 函数没有被调用onclick

<?php
$s_name= $_POST["submit"];

mysql_connect("localhost","root","");//database connection
mysql_select_db("itcompanylist");

$query  = "SELECT s_id FROM states WHERE `state_name` = '$s_name'";
$result1 = mysql_query($query);
$row = mysql_fetch_array($result1);
$result2 = mysql_query("SELECT city_name FROM `city` WHERE s_id ='".$row['s_id']."'");

$i = 0;

echo "<form method='post'  name='myForm'><table border='1' ><tr>";

while ($row = mysql_fetch_row($result2)){
  echo '<td><input type="submit" name="submit" onclick="ajaxFunction()" value="'.$row['0'].'"></td>'; 

  if ($i++ == 2) 
  { 
    echo "</tr><tr>";
    $i=0;
  }
}


echo "</tr></table></form>";    
echo "<div id='ajaxDiv'>Your result will display here</div>";       
?>

阿贾克斯代码:

<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
 var ajaxRequest;  // The variable that makes Ajax possible!

 try{
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest();
 }catch (e){
   // Internet Explorer Browsers
   try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
   }catch (e) {
      try{
         ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
         // Something went wrong
         alert("Your browser broke!");
         return false;
      }
   }
 }

 ajaxRequest.onreadystatechange = function(){
   if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.value = ajaxRequest.responseText;
   }
 }
 var s1 = document.getElementById('submit').value;

 var queryString = "?submit=" + s1 ;

 ajaxRequest.open("GET", "" + 
                              queryString, true);
 ajaxRequest.send(null); 
}
//-->
</script>     
4

2 回答 2

2

您的提交按钮将在处理 Ajax 请求之前提交表单并离开页面。

将您的事件处理程序绑定到表单的提交事件,并阻止默认操作。

function ajax(event) {
    // Send Ajax request here
    event.preventDefault();
}
var frm = document.getElementsByName('myForm')[0]; // Better to use an ID. Don't write HTML 3.2
frm.addEventListener('submit', ajax);
于 2013-03-20T13:37:57.847 回答
0

使用 onclick="return ajaxFunction()" 和 event.preventDefault(); 避免默认表单提交。

于 2013-03-20T13:41:18.080 回答