PDA

View Full Version : سوال: خواندن اطلاعات بصورت پویا از دیتابیس در PHP



masoud0455
دوشنبه 07 فروردین 1391, 08:42 صبح
من یک فرم با html درست کردم. دوتا texftield داره. یک جدول هم تو myphpadmin که یکی id و دیگری name.

سوالم اینه که چه جوری می تونم به محض وارد کردن id در صفحه html و با رویداد onmouseOver روی textfield بعدی با php از دیتابیس نام اون شخص رو بخونم.

(نمی خوام دکمه باشه می خوام onMouseOver باشه)

mohsen6500
دوشنبه 07 فروردین 1391, 08:58 صبح
با سلام
بایستی از تکنیک آجاکس استفده کنید!
برای مثال میتونی اینجارونیگا کنی! (http://sixrevisions.com/ajax/ajax_techniques/)

masoud0455
دوشنبه 07 فروردین 1391, 10:02 صبح
با سلام
بایستی از تکنیک آجاکس استفده کنید!
برای مثال میتونی اینجارونیگا کنی! (http://sixrevisions.com/ajax/ajax_techniques/)

تا حالا ایجکس کار نکردم اگه کد خاصی داره میشه بذارید.

MMSHFE
دوشنبه 07 فروردین 1391, 11:26 صبح
این مثال با jQuery کار شده. بنابراین باید فایل jQuery رو هم در کنارش با نام jqmin.js ذخیره کنید.
صفحه اصلی فرم:


<!doctype html>
<html>
<head>
<title>AJAX DEMO (jQuery)</title>
<meta charset="utf-8"/>
<script src="jqmin.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#text").mouseOver(function() {
$.ajax({
type: "get",
url: "read.php",
data: "id="+$("#id").val(),
success: function(data) {
$("#name").html(data);
}
});
});
});
</script>
</head>
<body>
ID :<input id="id" type="text"/><br/>
Name : <span id="name">&nbsp;</span><br/>
<textarea id="text"><textarea>
</body>
</html>

صفحه read.php که وظیفه خوندن از دیتابیس رو برعهده داره:


<?php
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = &$_GET['id'];
mysql_connect('localhost', 'root', '') or die();
mysql_select_db('dbname') or die();
msql_query('SET NAMES \'utf8\'');
$user = mysql_query("SELECT * FROM `users` WHERE (`id`='{$id}') ORDER BY `id` LIMIT 1");
if($user && mysql_num_rows($user) == 1) {
$user = mysql_fetch_assoc($user);
echo $user['name'];
}
}
?>

موفق باشید.

mohsen6500
دوشنبه 07 فروردین 1391, 11:37 صبح
ببینید آجاکس میاد و براتون مثل یک مرورگر اطلاعات رو ارسال و دریافت می کنه
البته بدون اینکه کاربر متوجه بشه
برای اینکار ابتدا باید کدی رو که بتونه تشخیص بده کاربر از کدوم مرورگر استفاده میکنه رو بذارید
در ادامه این کد اطلاعات مورد نظررو قرار میدهند
و متد ارسال اون رو هم تعیین می کنند که معمولا برای این کارها از متد get استفاده میکنند
این هم کد جاوا اسکریپت :

<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
همانطورکه می بینید یک تابع به نام showUser معرفی کرده است ودر پرانتز مقدار اینتابع رو دریافت میکنه
این کلمه txtHint نیز آی دی همون برگشتی ماست که بسته به کارمون به کار می بریم
این خط زیر نیز صفحه ایی رو که باید این مقدار چک بشه رو تعیین می کنه که آدرسش getuser.php هست
و متدش هم GET و مقدار q رو ارسال میکنه

xmlhttp.open("GET","getuser.php?q="+str,true);
خوب در قسمت بعد و در تگ های فرم یک select رو ایجاد کرده با option های مختلف و برای تغییر(onchange) این گزینه ها اون رو ارجاع به تابع جاوا اسکریپت میده!
یعنی میگه هروقت گزینه ها عوض شد تابع رو چک کن
با تغییر دادن گزینه ها اطلاعات مربوط به value گزینه ها به صفحه getuser.php ارسال میشود
حال در صفحه getuser.php با اتصال به بانک اطلاعاتی نام کاربری شخص چک شده و نام او را نمایش می دهد
امید وارم توضیحات کامل بوده باشه

اینم آدرس صفحه ی مورد نظر (http://www.w3schools.com/php/php_ajax_database.asp)