الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية امرار متغيرات بدالة ال POST فى Ajax

بدأه OdO في 29 أغسطس 2010 · 8 رد · 997 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الكود التالى يقوم بإمرار قيمة mail و التى يتم تحديدها أثناء الإرسال xmlhttp.send("mail=mymail");

كود الجافا سكربت:


<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}

xmlhttp.open("POST","gethint.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("mail=mymail");
}
</script>
</head>
<body>

<h2>Print Mail</h2>
<div id="myDiv"></div>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<input type="text" id="mail">
</body>
</html>

<html>

كود البى اتش بى:


$m=$_POST["mail"];
echo $m;
?>
<?php

و ما أريده هو ان اقوم بإمرار قيمة المربع النصى id=mail لكود البى اتش بى و باستخدام POST أيضا و ليس GET

و المشكلة أن POST حسبما أرى لابد من اعطاءها القيمة عند الإمرار فى دالة send , و قد حاولت اعطاءها قيمة المربع النصى هكذا :

var m=document.getElementById("mail).value;

ثم

xmlhttp.send(m);

أو

xmlhttp.send("m");

ثم استقبالها فى كود البى اتش بى :


$m=$_POST["m"];
echo $m;
?>
<?php

و لكن لا يعمل !!

ما العمل إذاً ؟؟

فى انتظار ردودكم

تحياتى,,

#2
var m=document.getElementById("mail").value;
....
xmlhttp.send("m="+m);
1
#3
herch كتب:

var m=document.getElementById("mail").value;
....
xmlhttp.send("m="+m);

لم تعمل

#4

"لم تعمل" لا تساعد كثيرا!! هل هناك رسالة خطأ تظهر

ما هول الكود الذي تستعمله، هل الكود الأول أم الكود الثاني؟ مثلا في الملف php هل تنتظر ال parameter إسمه m أم mail؟؟

1
#5
ajax.rar

In bad state

#6
herch كتب:

"لم تعمل" لا تساعد كثيرا!! هل هناك رسالة خطأ تظهر

ما هول الكود الذي تستعمله، هل الكود الأول أم الكود الثاني؟ مثلا في الملف php هل تنتظر ال parameter إسمه m أم mail؟؟

لم تظهر رسائل خطأ يا أخى

قصدت بــ "لم تعمل" ان النتيجة لم تتغير

كود الـ php

<?php
$m=$_POST["mail"];
echo $m;
?>

كود الـ javascript

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
var m=document.getElementById("mail").value;
xmlhttp.open("POST","gethint.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("m"+m);
}
</script>
</head>
<body>

<h2>Print Mail</h2>
<div id="myDiv"></div>
<button type="button" onclick="loadXMLDoc()">Request data</button>
 <input type="text" id="mail">
</body>
</html>
#7
var m=document.getElementById("mail").value; 
.... 
xmlhttp.send("m="+m);

اذا كان الاستقبال ب m

var m=document.getElementById("mail").value; 
.... 
xmlhttp.send("mail="+m);

اذا كان الاستقبال بال mail

بكل الاحوال جرب الملف يلي رفعتو بالمشاركة بالاعلى

In bad state

#8
X-File كتب:

var m=document.getElementById("mail").value; 
.... 
xmlhttp.send("m="+m);

اذا كان الاستقبال ب m

var m=document.getElementById("mail").value; 
.... 
xmlhttp.send("mail="+m);

اذا كان الاستقبال بال mail

بكل الاحوال جرب الملف يلي رفعتو بالمشاركة بالاعلى

لم يستجب أيضا

الملف الذى رفعته يا أخى الكود به يعمل ,و لكنه مختلف عن المثال اللذى ذكرته أنا

فهو يعتمد على ارسال المتغير عن طريق استدعاء الدالة داخل وسم المربع النصى :

<input type="text" onkeyup="showHint(this.value)" size="20" />

و هكذا تستقبلها فى الجافاسكربت:

function showHint(str)

{

if (str.length==0)

  { 

  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("POST","gethint.php",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 

xmlhttp.send("mail="+str);

}

و لكن عند التعديل فيه هكذا :

<input type="text" id="mail" size="20" />

و استقباله هكذا فى الجافاسكربت:

function showHint()

{



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;

    }

  }
var str=document.getElementById("mail").value;

xmlhttp.open("POST","gethint.php",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 

xmlhttp.send("mail="+str);

}

لا يعمل و لا يُظهر أى شىء

تم تعديل هذه المشاركة بواسطة OdO في 29 أغسطس 2010 في 03:22

#9

X-File

كودك يعمل الآن

كنت قد نسيت اضافة حدث لاستدعاء الدالة ,و قمت باضافة

<input type="button" onclick="showHint()" value="click me" id="b">

سأحاول ضبط المثال اللذى ذكرته طبقا لهذا عله يعمل

مواضيع مشابهة