-
مشکل کد من کجاست؟ (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);
//$_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']='';
}
?>
-
دوست عزیز کدتون یه مقدار که چه عرض کنم ، خیلی مشکلات داره. بنظرم اول یه مقدار روی مفاهیم جاوااسکریپت کار کنین بعد برین سراغ ایجکس. در هر صورت اینجا میتونین مطالب مفیدی پیدا کنین:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
-
اره باید بیشتر روی مفاهیم کار کنم.
به هرحال اگه یکی دو تا از ایرادات کد من رو هم میگفتید خوب میشد. همینم میشه یه نکته آموزشی
اصلا همین یک مورد هم برای من حل بشه خیلی خوبه که ببینم چرا صفحه دوباره لود میشه. من که قسمت action فرم رو خالی گذاشتم.
-