مشکل کد من کجاست؟ (ajax)

سلام
چند روزیه دارم روی ajax کار میکنم. تازه کار هم هستم. چند خط کد خیلی ساده و ابتدایی نوشتم اما نمی دونم چرا کار نمی کنه. ممکنه بگید ایرادش کجاست؟
کاری که قراره انجام بشه اینه که از طریق یک فرم نام و نام خانوادگی در دیتابیس mysql ثبت بشه و از طریق فیلد سوم نام وارد شده از طرف کاربر در دیتابیس جستجو و مورد پیدا شده نمایش داده بشه.
مسئله اول اینجاست که با زدن دکمه ها کل صفحه دوباره لود میشه که طبق مبانی ajax نباید اینطوری بشه.
مسئله دوم اینه که اصلا تعامل با دیتابیس انجام نمیشه.
ایراد کد من کجاست؟

index.html
کد:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
<script type="text/javascript">
function ajax(){
 var xmlHttp;
 xmlHttp = new XMLHttpRequest();
 xmlHttp.onreadystatechange=function()
 {
 if (xmlHttp.readyState==4 && xmlHttp.status==200)
   {
 document.getElementById("test").innerHTML = xmlHttp.responseText;
   }
 }
 xmlHttp.open("POST", "http://localhost/mysite/main.php", true);
 xmlHttp.send(); 
 }
</script>
</head>
<body>
<form action="">
<table border =1>
<tr><td>First Name: </td><td><input type='text' name='name'></td></tr>
<tr><td>Last Name: </td><td><input type='text' name='family'></td></tr>
<tr><td colspan='2' align='center'><button name="submit" onclick="ajax()">Send</button></td></tr>
<tr><td>Search Name: </td><td><input type='text' name='sname'></td></tr>
<tr><td colspan='2' align='center'><button name="search" onclick="ajax()">Search</button></td></tr>
</table>
</form>
<div id="test"></div>
</body>
</html>
main.php
کد:
<?php
$name = $_GET['name'];
$family = $_GET['family'];
$sname = $_GET['sname'];

$connect = mysql_connect('localhost','root','');
$select = mysql_select_db('testdb',$connect);
if ($_GET['submit'])
{
$query = "insert into tbl1 (name,family) values ('$name','$family')";
echo ($query);

$result = mysql_query($query,$connect);

//$_GET['submit']='';
//header('location:http://localhost/mysite/index.html');
}

else if ($_GET['search'])
{
 $query = "select * from tbl1 where name == '$sname'";
 $result = mysql_query($query,$connect);
 $row = mysql_fetch_array($result,$connect);
 
 echo (" 
 <table>
 <tr><td>Name: </td><td>$row[0]</td></tr>
 <tr><td>Family: </td><td>$row[1]</td></tr>
 </table>
 ");
$_GET['search']='';    
}

?>
 
آخرین ویرایش:
توی خاصیت onclick باتون سرچ، اول باید رویداد کلیک رو کنسل کنی بعد تابع ajax را فراخوانی کنی

کد:
<button name="search" onclick="ajax()">Search</button>

باید بجاش بنویسی
کد:
<button name="search" onclick="return false;ajax();">Search</button>

وقت ندارم چک کنم. ولی همین باید باشه
 
توی خاصیت onclick باتون سرچ، اول باید رویداد کلیک رو کنسل کنی بعد تابع ajax را فراخوانی کنی

کد:
<button name="search" onclick="ajax()">search</button>
باید بجاش بنویسی
کد:
<button name="search" onclick="return false;ajax();">search</button>
وقت ندارم چک کنم. ولی همین باید باشه

ممنون. مشکل اول حل شد. با کلیک کردن حداقل صفحه دوباره لود نمیشه ولی مشکل دوم هنوز پابرجاست. تعامل خاصی با دیتابیس انجام نمیشه. بازم تست میکنم ببینم میتونم مشکلش رو دریارم یا نه ...
 

جدیدترین ارسال ها

بالا