PDA

View Full Version : سوال: مشکل در آژاکس و php



miladbar
شنبه 05 اسفند 1391, 11:56 صبح
سلام دوستان
در کد زیر می خواهیم بعد از کلیک نمودن روی دکمه 1 دکمه 2 با استفاده از آژاکس ایجاد بشه و در صورت کلیک کردن روی دکمه 2 یک پیغام چاپ شود. مشکل کد زیر این است که پیغام نمایش داده نمی شود. لطفا اگر امکان دارد راهنمایی نمایید:قلب:
فایل html:

<script language="javascript">

var xmlhttp=false;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
function getdata(url,div)
{
if(xmlhttp)
{
xmlhttp.open("GET",url);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(div).innerHTML=xmlhttp.res ponseText;
}
}
xmlhttp.send();
}
}
</script>
</head>

<body>
<input type="button" value="button1" onclick="getdata('test2.php','div1')"/>
<span id='div1'></span>
</body>
فایل php:

<body>
<?php
echo"<input type='button' value='button2' onclick="."alert('hello')"."id='b2'/>";
?>

siavashsay
شنبه 05 اسفند 1391, 12:04 عصر
این کار با jQuery خیلی راحت قابل حل هست :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
function btn2Click(data){
alert(data);
}
$(document).ready(function(e) {
$("#btn2").hide();
$("#btn1").click(function(e) {
$("#btn2").show();
});
});
</script>
</head>

<body>
<input type="button" id="btn1" name="btn1" value="Button 1" />
<input type="button" id="btn2" name="btn2" value="Button 2" onclick="btn2Click('My Data')" />
</body>
</html>
البته بنده خیلی سطحی و ساده نوشتم ! خیلی بهتر از اینا هم میشه نوشت ! فقط باید مشخص کنید که دقیقا واسه چه کاری هست ! یعنی قرار به دیتابیس اتصالی برقرار بشه ؟ مقداری به صفحه ای فرستاده شه ؟ و ...
موفق باشید

miladbar
شنبه 05 اسفند 1391, 12:12 عصر
با تشکر از دوست گرامی
ما می خوایم وقتی که مثلا دکمه 1 کلیک شد با اژاکس اطلاعاتی از دیتابیس گرفته بشه و در یک comboBox نشون داده بشه حالا با توجه به گزینه انتخابی در conboBox باز هم با آژاکس عملی روی دیتابیس انجام بشه. ممنون اگه بازم راهنمایی کنید

eshpilen
شنبه 05 اسفند 1391, 12:14 عصر
آژاکس نه، ایجکس!

Mohsen.
شنبه 05 اسفند 1391, 12:28 عصر
دوست عزیز بهتره مطالب زیرو بخونید. کاملا میفهمید که باید چی کار کنید البته اگه یکم با Jquery کار کرده باشید.
آموزش کار با ajax بخش اول (http://aparnet.ir/275-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-ajax)
آموزش کار با ajax بخش دوم (http://aparnet.ir/335-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-ajax-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85)

siavashsay
شنبه 05 اسفند 1391, 12:51 عصر
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function(e) {
$("#btn2").hide();
$("#btn2").click(function(e) {
var vl=$("#cbox").val();
alert(vl);
});
});
function getData(tbusers){
$.post('my_page.php',{tbusers:tbusers},function (cback){
$("#divbox").html('<select id="cbox">'+cback+'</select>');
$("#btn2").show();
});
}


</script>
</head>

<body>
<input type="button" id="btn1" name="btn1" value="Button 1" onclick="getData('webmasters')" />
<input type="button" id="btn2" value=" button 2" />
<div id="divbox"></div>

</body>
</html>

صفحه my_page.php که به دیتابیس وصل میشه !

<?php
if(isset($_POST['tbusers'])){

$cn=mysql_connect("localhost","root","");
$db=mysql_select_db("yourDb",$cn); // دیتابیس خودتون رو اضافه کنید
$tbusers=mysql_real_escape_string($_POST['tbusers']) or die(mysql_error());
$sql=mysql_query("SELECT * FROM {$tbusers}") or die(mysql_error());
while($obj=mysql_fetch_object($sql)){
$users=$obj->username;
echo '<option value="'.$users.'">'.$users.'</option>';
}
}
?>
موفق باشید

miladbar
یک شنبه 06 اسفند 1391, 14:51 عصر
ممنون، از همه من مشکلی با ایجکس (آژاکس) ندارم سوالمو بد مطرح کردم. مشکلم با ازمون و خطا حل شد

omidabedi
یک شنبه 06 اسفند 1391, 16:20 عصر
ajax = ای جکس = ayjaks
D:
نمیدونم چرا همه به فکر استفاده از ajax در کدهاشونن؟؟؟
jquery خیلی باحالترو اسونتره .اصن کاربرده ajax رو با jquery قاطی میکنن