PDA

View Full Version : سوال: مشکل در استفاده از تکنیک ajax برای نمایش یک صفحه دیگر در صفحه جاری



Ali0Boy
چهارشنبه 15 شهریور 1391, 13:29 عصر
سلام دوستان. من از کد زیر برای نمایش یک صفحه ی دیگر به نام "mnropt.php" در صفحه ی جاری، داخی یک دیو به نام "ifshow" استفاده کرده ام. ولی مانده ام که چرا نمایش نمی دهد:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
function chkUser() {
if(window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState ==4 && xmlhttp.status == 200) {
document.getElementById('ifshow').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('post', 'http://google.com', true);
xmlhttp.send();
alert("best");
}

function chngpg(index)
{
if(index==1)
{
chkUser();
}
else
{
alert(index);
}

}
</script>
</head>

<body><center>
<a href="" onClick="javascript: chngpg(1);">Go TO</a><br>
<div id="ifshow" style="width:800px; height:700px;border:1px solid #000;"></div></center>
</body>
</html>


خواهشا سریعا جواب بدین. کل پروژه برای همین مشکل خوابیده!!!

Ali0Boy
چهارشنبه 15 شهریور 1391, 14:20 عصر
خوب دوستان مشکل حل شد، خیلی راحت با کمی بیشتر دقت کردن، توانستم مشکلم رو حل کنم.
به نظر من "هر چقدر برنامه نویس بزرگ و حرفه ای باشی، کوچک ترین اشتباه ها شما را به چالش می طلبد" !

برای رفع خطای بالا فقط کافی بود به جای خط:


<a href="" onClick="javascript: chngpg(1);">Go TO</a>


می نوشتیم:


<a onClick="javascript: chngpg(1);">Go TO</a>


یعنی فقط یک href="" رو حذف می کردیم. :قهقهه:
ببینید یک اشتباه منطقی نه دستوری چطوری آدم رو روانی خودش می کنه. :گیج: ولی خداییش من از همین برنامه نویسی خوشم میاد :قلب:
قوربووووووووون همه عزیزانی که در این تاپیک پاسخ هایی دادند.

eshpilen
چهارشنبه 15 شهریور 1391, 14:21 عصر
این کد رو تست کردم کار میکنه:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script type="text/javascript">

function chkUser() {

if(window.XMLHttpRequest) {
xmlhttp= new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}

xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState ==4 && xmlhttp.status == 200) {
document.getElementById('ifshow').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET', '2.php', true);
xmlhttp.send();
alert("best");
}

function chngpg(index)
{
if(index==1)
{
chkUser();
}
else
{
alert(index);
}

}
</script>
</head>

<body><center>
<a href="javascript:chngpg(1);" onClick="">Go TO</a><br>
<div id="ifshow" style="width:800px; height:700px;border:1px solid #000;"></div></center>
</body>
</html>

یه اشکال فکر کنم این بود که href تگ a خالی بود.
اشکال دیگه فکر میکنم اینه که شما میخوای از یه دامین دیگه محتویات بگیری با ایجکس، که این فکر میکنم به دلیل مسائل امنیتی جلوش گرفته شده. بهش میگن cross domain ajax یا یه همچین چیزی. اگر واقعا میخوای چنین کاری بکنی ترفندهایی داره ظاهرا، اما نمیدونم میشه کل محتویات یک سایت دیگر رو اینطوری بگیری یا نه. شاید اصلا نشه.
اگر میخوای کل یک سایت رو نمایش بدی، چرا اون رو در یک iframe نمیذاری؟
ضمنا یه راه دیگه هم اینه که محتویات اون سایت رو سمت سرور با سوکت یا cURL بگیری و بعد قسمتهاییش رو که میخوای بذاری توی سورس HTML خودت. اما این کار شاید در خیلی کشورها غیرقانونی باشه ها!