jaegerknight
چهارشنبه 09 شهریور 1390, 20:00 عصر
با سلام خدمت همه دوستان،
ببخشید که توضیحاتم اینقدر طولانی و پیچیده شده، اگر حوصله خوندن ندارید فقط قسمت های قرمز رنگ رو بخونید.
من دوتا فایل php مثلا a.php و b.php دارم که در اونها از js استفاده کردم.
در فایل اول یک فرم html و جود داره که یک سری اطلاعات رو از کاربرها می گیره و با استفاده از ajax به فایل دوم می فرسته و خروجی عملیات فایل b.php در یک دایو در صفحه a.php نمایش داده میشه.
در فایل دوم یک سری تابع جاوا وجود داره که مقادیر دریافت شده از فایل اول بعد از پردازش توسط php می گیره و با اونها یک فرم می سازه و برای یک صفحه دیگه پست می کنه؛ وقتی فرم موجود در فایل اول رو در فایل دوم قرار میدم و اطلاعات رو مستقیما از کاربر در همون صفحه می گیرم توابع جاوا کار می کنه اما وقتی فرم توی صفحه اولی قرار داره و اطلاعات برای فایل دومی پست می شه توابع جاوا کار نمی کنه، مشکل کجاست؟!
لپ مطلب اینه که چطور میشه وقتی دوتا فایل php هست، توسط فایل اول و از طریق ajax توابع جاوااسکریپت موجود در فایل دوم رو اجرا کرد؟
کد های جاوا موجود در a.php
function sendinfo(){
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById('message').innerHTML = xmlhttp.responseText;
}
}
params =
'name='+document.getElementById('name').value
'&lname='+document.getElementById('lname').value;
xmlhttp.open('POST' , 'b.php' , true);
xmlhttp.setRequestHeader('Content-type' , 'application/x-www-form-urlencoded');
xmlhttp.send(params);
}
کد های موجود در فایل b.php
function postRefId (str) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", "lasURL");
form.setAttribute("target", "_self");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "name");
hiddenField.setAttribute("value", str);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
ببخشید که توضیحاتم اینقدر طولانی و پیچیده شده، اگر حوصله خوندن ندارید فقط قسمت های قرمز رنگ رو بخونید.
من دوتا فایل php مثلا a.php و b.php دارم که در اونها از js استفاده کردم.
در فایل اول یک فرم html و جود داره که یک سری اطلاعات رو از کاربرها می گیره و با استفاده از ajax به فایل دوم می فرسته و خروجی عملیات فایل b.php در یک دایو در صفحه a.php نمایش داده میشه.
در فایل دوم یک سری تابع جاوا وجود داره که مقادیر دریافت شده از فایل اول بعد از پردازش توسط php می گیره و با اونها یک فرم می سازه و برای یک صفحه دیگه پست می کنه؛ وقتی فرم موجود در فایل اول رو در فایل دوم قرار میدم و اطلاعات رو مستقیما از کاربر در همون صفحه می گیرم توابع جاوا کار می کنه اما وقتی فرم توی صفحه اولی قرار داره و اطلاعات برای فایل دومی پست می شه توابع جاوا کار نمی کنه، مشکل کجاست؟!
لپ مطلب اینه که چطور میشه وقتی دوتا فایل php هست، توسط فایل اول و از طریق ajax توابع جاوااسکریپت موجود در فایل دوم رو اجرا کرد؟
کد های جاوا موجود در a.php
function sendinfo(){
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById('message').innerHTML = xmlhttp.responseText;
}
}
params =
'name='+document.getElementById('name').value
'&lname='+document.getElementById('lname').value;
xmlhttp.open('POST' , 'b.php' , true);
xmlhttp.setRequestHeader('Content-type' , 'application/x-www-form-urlencoded');
xmlhttp.send(params);
}
کد های موجود در فایل b.php
function postRefId (str) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", "lasURL");
form.setAttribute("target", "_self");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "name");
hiddenField.setAttribute("value", str);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}