ارسال مقادیر فیلدها با کلید بر روی لینک ؟

pix07

Member
سلام دوستان

من یه 2 صفحه دارم که در یکی یک لینک و یک تگ div با نام reciv قرار دارد
و در دیگری 2 فیلد و یک لینک با نام لوگین
میحوام بعد از کلیک بروی لینک ورود که در صفحه اول قرار دارد محتوای صفحه دوم در تگ reciv بصورت ajax نمایان شود
و پس از کلیک بر روی لینک لوگین مقادیر دو فیلد به صورت آژاکس مجددا به صفحه دوم برای پردازش ارسال شود و نتیجه هم در تگ reciv نمایان شود

من برای این کار از کد جاوای زیر که تابعی با نام استفاده کردم

PHP:
function getPage(page){
    var xmlhttp = false;
    try{
        xmlhttp= new ActiveXObject('Msxml2.XMLHTTP');
    }catch(e){
        try{
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }catch(E){
            xmlhttp=false;
        }
    }
    if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
        xmlhttp =new XMLHttpRequest();
    }
    var file = 'process.php?page=';
    xmlhttp.open('GET', file + page, true);
    xmlhttp.onreadystatechange=function() {
        if(xmlhttp.readyState==4){
            var content = xmlhttp.responseText;
            if(content){ document.getElementById('reciv').innerHTML=content;}}}
            xmlhttp.send(null) 
            return;
}
یعد لینکی با محتوای
PHP:
<p><a href="javascript:getPage('2')">enter </a></p>
<p><span id="reciv" > </span></p>
سپس در صفحه دوم

PHP:
<form>
<input type="text" name="user">
<input type="text" name="pass">
<p><a href="javascript:getPage('&user='+this.form.user.value+'&pass='+this.form.pass.value)">login </a></p>
</form>
اما لینک دوم یا همون لینک login کار نمیکنه مشکل از کجاست ؟
 
آخرین ویرایش:

greencat

Member
سلام
مشکل شما رو هم منم داشتم و دارم اما برای یک راه حل وجود داره .
فکنم این طوری حل بشه مشکلتون.
اول مشکل از کجاست :
مشکل شما این هستش که در صفحه‌ی دومتون که با آزاکس هستش و با اون محتویات div با id=reciv رو پر میکنید میخوایید یک کد جاوااسکریپت رو اجرا کنید یعنی این خط از کد صفحه دوم لینکی که با جاوااسکریپت مقدار دهی کردید:
کد:
<a href="javascript:getPage('&user='+this.form.user.value+'&pass='+this.form.pass.value)">login </a>

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

pix07

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

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

البته میتونیم مقادیر رو در id دکمه قرار بدیم بعد با JQuery آی دی دکمه رو دریافت کنیم و در تابع قرار بدیم ... که من مدت هاست JQuery کار نکردم و هر چی اندوخته بودم رو فراموش کردم . شما چیزی ازش میدونی .؟
 

greencat

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

برای اولی میتونی از ie استفاده کنی که ببینی تابت درسته یا نه و مقادیر رو اصلا میفرسته و قرار میگیره توی لینکت یا نه چون با ie میتونی کدهای جاوات رو debug کنی (با تمامی گندیش اینش عالی هستش و برای خطا گیری عالی هستش:))


البته میتونیم مقادیر رو در id دکمه قرار بدیم بعد با JQuery آی دی دکمه رو دریافت کنیم و در تابع قرار بدیم ... که من مدت هاست JQuery کار نکردم و هر چی اندوخته بودم رو فراموش کردم . شما چیزی ازش میدونی .؟
چرا jquery؟؟؟ اگر فقط برای این 1 مورد میخوای استفاده کنی بهتر استفاده نکنی و حجم الکی رو به کاربر متحمل نکنی الان تو میخوای یه سری پارامتر‌ها رو با استفاده از جاوا بگیری و به صورت لینک بفرستی به یه صفحه دیگه، درسته؟ خوب اون متغییر‌ها رو به یه تابع مثل مثلا link بفرست (تو صفحه آزاکس تابع جاوا کار میکنه) بعد اون تابع کار ارسال لینک رو به طور خودکار انجام بده و اطلاعات رو بفرست.
با استفاده از خاصیت Onclick دکمه یا یه لیبیل این کار رو میتونی به راحتی انجام بدی.
 

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

بالا