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

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

بدأه SalehZubir في 6 أكتوبر 2012 · 2 رد · 1,132 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي نموذج يطب من المستخدم ان يكتب بداخله اي شيئ وفي حال قام المستخدم بالضغط على زر 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 في 6 أكتوبر 2012 في 14:29

#2

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

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


}

وشكراً لك

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

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…