• 0
SalehZubir

أسئلة حول ارسال المدخلات من ملفات js إلى ملفات php

سؤال

السلام عليكم ورحمة الله وبركاته

لدي نموذج يطب من المستخدم ان يكتب بداخله اي شيئ وفي حال قام المستخدم بالضغط على زر Submit فإن دالة Javascript يتم استدعائها من ملف خارجي .js لتتحقق من ان الحقل غير فارغ عند الضغط على زر Submit ففي حال كان الحقل فارغ سيتم استدعاء رسالة تفي بذلك في نفس الصفحة التي بها النموذج وذلك بستخدام ajax داخل دالة الجافا سكربت مع ملف الـ xml الذي يحتوي على رسالة الخطاء وفي حال كان المستخدم قد ادخل نص أو رقم فإنه سيتم إرسال هذا النص ونقل المستخدم إلى صفحة test.php ليتم طباعته

حتى الان لا يوجد اي اخطاء تنفيذي والكود يعمل جيداً

ولكن لدي بعض الاسئلة

1- الحمد لله استطعت ارسال قيمة مدخلات المستخدم من ملف js إلى ملف php لكن المشكلة ان الطريق تتم عن طريق الـ get رغم ان لم احددها فكيف يمكن تحديد الطريقة POST في ارسال متغيرات js عن طريق javascript لملفات php

2- ارسالة قيمة المدخلات إلى صفحة test.php والتي يقوم بإدخالها المستخدم يتم عن طريق الـ Javascript وليس عن طريق الـ Action في النموذج والسبب في ذلك هو انني استخدم العبارة return false; مع الحدث onclick للزر submit حتى استطيع استخدام دالة javascript للتحق من المدخلات وبدون عبارة return false; سيتم نقل المدخلات مباشرة إلى test.php عن طريق Action في النموذج لا كن بدون التحقق من المدخلات

سؤالي حول هذه النقطة هو هل الاسلوب الذي استخدمه لإي ارسال قيمة المدخلات صحيح ام غير صحيح

3 - وفي حال كان الاسلوب الذي اتبعه غير صحيح في ارسال قيمة المدخلات فكيف يمكن تصحيحه

الهدف من هذا كله هو التحقق من مدخلات المستخدم بسخدام الـ javascript اولاً و من ثم الـ php

ارجو الاإجابة على هذه الاسئلة الثلاث وأسف على الاطالة

ملف النموذج


<!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>
<script type="text/javascript" src="test.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>

<body>
<form name="test_form" action="test.php" method="post">
<label>Enet Text : </label>
<input type="text" name="test_text" />
<div id="test_area"></div>
</br>
<input type="submit" value="click" onclick="test();return false;" />
</form>
</body>
</html>

ملف test.js


// JavaScript Document
function test()
{

//object constructor
function CheckInput(test)
{
this.text_test=test;
}

test_form=new CheckInput
(
document.forms["test_form"]["test_text"].value
);

if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{

if(test_form.text_test == null || test_form.text_test == "")
{
var msg = xmlhttp.responseXML.documentElement.getElementsByTagName("singin_errors")[0].
getElementsByTagName("error")[0].childNodes[0].nodeValue;
document.getElementById("test_area").innerHTML=msg;
}

else
{
location.href = 'test.php?test_var='+test_form.text_test;
}
}
}

xmlhttp.open("POST","test.xml",true);
xmlhttp.send();

}

//---------------------------------------------------------------------------------------------------------

ملف test.php


<?php
echo $_GET['test_var'];
?>

تم تعديل بواسطه SalehZubir
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

مرحبا صالح , انت تستخدم الاجاكس للارسال , وما يحصل فعليا هو ان الكود يفحص قيمة

test_form.text_test

فادا كان هناك قيمة سيتم التحويل

للرابط

'test.php?test_var='+test_form.text_test;

الكود لن يعمل بطريقة البوست اطلاقاً الا ادا كن المتغير فارغا او لا يحتوي قيمة

وسيعمل على تحويل المستخدم للرابط ادا كان المتغير يحتوي قيمة

الافضل ان تستخدم التالي


<!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>
<script type="text/javascript" src="test.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>

<body>
<form name="test_form" action="test.php" method="post" onclick=" return test(this);" >
<label>Enet Text : </label>
<input type="text" name="test_text" />
<div id="test_area"></div>
</br>
<input type="submit" value="click" />
</form>
</body>
</html>

function test(form)
{
if(form.text_test.value=='')
{
document.getElementById("test_area").innerHTML='فضلا ادخل قيمة';

return false;
}
return true


}

وشكراً لك

ما تود عمله لا يستدعي استخدامك الاجاكس

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .