• 0
sanureta

أرجو المساعده .. سؤال في كود لعمل Quiz

سؤال

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

عندي مشكله بسيطه اتمنى من الجميع مساعدتي

هذا كود لعمل كويز بسيط multichoice

شرح الكود :

1- يقوم اليوزر بادخال الايميل السؤال

2-يحدد عدد الاختيارات التي يريدها للسؤال

3-يضغط نكست

4- بتفتح صفحه ثانيه يطلع تكست فيلد على عدد الخيارات ويدخل الخيارات الي يريدها للسؤال ويضغط Click here for send

الكود :

في المرفقااات

المشكله :

في الجافا السكربت في الفنكشن choic

document.writeln("<p><input type=\"button\" value=\"Click here for send\" onclick = \"bod.js\">");

في ال onclick اريد اذا ضغط اليوزر عليها تذهب الى صفحه اخرى

أو تطلع وندو alert

او تعمل اي اكشن

المشكله ماضبطت معي أبدااا

حاولت كثير ولا عرفت

اتوقع هناك خطأ في نفس كتابه الكود

ارجو الرد وشكراااا ..

quiz2.rar

0

شارك هذا الرد


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

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

  • 0

في هذا السطر بالتحديد:

document.writeln("
<input type=\"button\" value=\"Click here for send\" onclick = \"bod.js\">");

الحدث onclick لا يمكن ان يحوي على اسم ملف js.

ممكن تكتبي مثلاً

onclick=\"java script:alert(null);\"

وانظري ما يحدث. هذه طريقة تنفيذ أوامر js مباشرة بداخله, أو بطريقة أخرى أن يكون ملف bod.js مستورداً إلى داخل صفحة html التي يوجد بها الأمر أعلاه شرط أن يحتوي الملف على التعليمات المراد تنفيذها في وظيفة لنسميها MyFunction وتقومي باستدعائها من حدث onclick

onclick=\"MyFunction();\"

هذا في حال فعلاً هذا ما تبحثين عنه.

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

شارك هذا الرد


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

شكرا على ردك ..

ولكن جربت هذي الطريقه الي قلتها ولا ضبطت معااي

كتبت الكود هذا

 document.writeln("
 <input type=\"button\" value=\"Click here for send\" </P> 
onclick=\"java script:alert(null);\"> ");

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

شارك هذا الرد


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

حذفتي المسافة الفارغة بين كلمتي java و script فالمنتدى يقوم بوضع مسافة بشكل تلقائي لكي يحد من الثغرات الأمنية.

javascript كلمة واحدة. من المفترض ان تظهر رسالة فارغة حينها. فقط للتوضيح.

0

شارك هذا الرد


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

شكرا لك أخي الكريم ..

جربتها وضبطت معاي

ولكن جربت الكود

onclick=\"myFunction();\"

بس ماضبط معاي

طبعا انا عرفت قبل الفنكشن choice فنكشن :

function myFunction() { </P> 

document.writeln(" hi" );</P> 
}

وماضبطت معاي

اتوقع هناك خطأ في الكتابه

ايضا حاولت اني استدعي الملف bod.js

ولكن ماضبطت معاي

0

شارك هذا الرد


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

ممكن تضعي محتويات ملف bod.js لو سمحت حتى استطيع أن أحدد كيف من الممكن تضمين محتوياته والاستفادة منه

0

شارك هذا الرد


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

شكرا لاهتمامك ..

وضعت الملف بالمرفقات ..

المطلوب من هذا الملف :

انه يقوم بعرض السؤال المدخل وايضا الخيارات الي ادخلها اليوزر للسؤال . لكي يقوم ال student بحلها ..

طبعا انا عملت array عشان تخزن الخيارات في الفايل quiz واريد طباعه ال array في الفايل bod

ولكن ماضبطت معاي

حتى في تخزين المدخلات حقت الخيارات ماتخزنت في ال array اتوقع هناك مشكله في نفس الكتابه

bod.rar

0

شارك هذا الرد


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

أجريت العديد من التعديلات والإضافات أتمنى أن تكون واضحة.

نصيحة: write more human readable code

حاولي تنسيق الكود بشكل أفضل أثناء كتابته واضافة تعليقات عند الحاجة.

ان كان هناك شئ غير مفهوم في التعديلات او الاضافات لا تترددي بالسؤال.

السلام عليكم

xquiz.rar

0

شارك هذا الرد


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

أشكرك جدا لتجاوبك معي ومساعدتي ..

ان شاء الله سأخذ بنصيحتك ..

وببلغك لو كان هناك شيء غير مفهوم ..

تحياتي ..

0

شارك هذا الرد


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

السلام عليكم ..

واجهتني مشكله اخرى وهي :

قمت باضافه فنكشن اسمها check

لكي تقوم بالتأكد من الاجابه هل هي صحيحه ام لا

طبعا الاجابه الصحيحه هي التي قام اليوزر عند ادخاله الخيارات بتحديدها ..

واجريت هذه التعديلات

على الملف bod.js

ولكن بعد اجراء التعديل صرت اذا ضغطت على click her to send يطلعلي ارور

حاولت ولكن ماعرفت أين المشكله ..

الملف في المرفق

الرجااء المساعده .. وشكرا ..

bod.rar

0

شارك هذا الرد


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

الرجاء إرفاق كامل الملفات التي تقومي بالتعديل عليها، قمت بالتعديل على الملفات القديمة بالصورة التي كنت تتكلمين عنها، أتمنى أن تكون الأمور واضحة.

xquiz2.rar

0

شارك هذا الرد


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

شكرا لك أخي الكريم لاهتمامك .. ومساعدتي

عندي سؤال في الكود ..

document.getElementsByName('c')[x].value == document.getElementsByName('cc')[0].value)

ايضا ..

setTimeout('window.close(this)',5000);

و ..

 

<input type='hidden' name='cc' value='" + obj.correct + "'>

وشكرا لتعاونك

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

شارك هذا الرد


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

document.getElementsByName('c')[x].value == document.getElementsByName('cc')[0].value)

تقوم بالبحث ضمن المستند الحالي document عن جميع العناصر التي تحمل الخاصة name='c'

لاحظي: getElementsByName('c')

ولأنه هناك احتمال أن تأخذ 10 عناصر نفس الاسم فهي تكوّن ما يشبه مصفوفة كل عنصر له ترتيب. فأعتمد على قيمة x في تحديد العنصر المطلوب. في الملف المرفق ستلاحظي أن عناصر الـ radio boxes هي الوحيدة التي تحمل هذا الاسم وأنا أريد المرور عليها بشكل كامل لذلك أقوم باعتماد حلقة المتغير فيها هو قيمة x.

بالتالي لو كتبت:

document.getElementsByName('c')[x].value

فأنا أحصل على قيمة value التي أكتبها لذلك العنصر.

<input type="radio" name="c" value="c0">

يعني أحصل على قيمة c0

المساواة == هي عبارة عن operator يتم استخدامها في أمر شرط IF مثلاً

if (A == B) { do something; }

الطرف الثاني من المساواة نفس الفكرة، فالوسم المكتوب في الملف بهذا الشكل:

<input type="hidden" name="cc" value="">

استخدمته في تمرير دليل الخيار الصحيح من صفحة إلى أخرى لأني وجدت صعوبة في جعل القيمة الصحيحة عنصر داخل المصفوفة وجلب القيمة من الصفحة الجديدة..

فقيمة value ستحمل دليل الخيار الصحيح وبالتالي أقوم بجلب القيمة حسب الكود أعلاه وأقوم بمقارنتها مع قيم الـ radio boxes في صفحة اختيار الجواب الصحيح من قبل الطالب.

ان كان هناك شئ غير مفهوم أرجو الدلالة عليه. سأقوم بالإجابة على الاستفسارات الباقية في مشاركة جديدة للتمييز.

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

شارك هذا الرد


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

setTimeout('window.close(this)',5000);

وظيفة JavaScript (لو استخدمت Google لوفرت على نفسك السؤال).

تقوم بتنفيذ أمر ما بعد انتهاء زمن معيّن.

prototype:

setTimeout("executeFunction()",time-in-milliseconds)

executeFunction() هي أي وظيفة أو أمر أو مجموعة أوامر حتى ليتم تنفيذها

بعد انتهاء المدة الزمنية المحددة في البارامتر الثاني والتي تكون مقاسة بالميلي ثانية أي 1000ms = 1 second

فلاحظي أن الصفحة بعد ان تقوم بعرض passed أو failed تغلق تلقائياً بعد مرور 5 ثوان.

الاستفسار الأخير:

<input type='hidden' name='cc' value='" + obj.correct + "'>

سأقوم بجلب قيمة من المتحول obj (ومن الخاصة correct) الذي قمت بتعريفه وإضافة بعض الخواص إليها سابقاً مثل:

1. أضفت array له باسم arr

2. أضفت عنصر نصي له باسم correct ليحمل الـ value الخاصة بالـ radio box الذي يشير إلى الجواب الصحيح. يتم ملئ هذا العنصر عند تنفيذ الوظيفة fill()

0

شارك هذا الرد


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

شكرا اخي للتوضيح ..

0

شارك هذا الرد


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

اسفه لازعاجك ..

قمت بأخر خطوه في عملي

ان اجعل اليوزر الي يحل الكويز يقوم بادخال ال id او ال name

ثم

اقوم بارسال النتيجه هل هي pass او faild مع ال id الى الايميل المدخل

عملت ذلك ولكن ماضبط معاي طلعلي ارور في صفحه click her to send

لا اعلم اين الخطأ في كتابتي !!

الملف مع تعديلاتي في المرفق ,,

Copy_of_xquiz2.rar

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

شارك هذا الرد


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

ان لم تظهر المتغيرات الخاصة بالرسالة في نص الرسالة استخدمي الشكل التالي:

	results.document.writeln ("<form NAME='choices' action='mailto:" + e + "?subject=Results&body=' onsubmit='check();setTimeout(\"window.close(this)\",10000);return true;' method='post' enctype='text/plain'>");

وسيتم وضعها داخل جسم الرسالة حتى لو لم تكن بتنسيق.

xquiz3.rar

0

شارك هذا الرد


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

جزاك الله خيرا اخي الكريم لمساعدتك وتعاونك ..

ولكن جربت الكود وماجتني رساله بالنتيجه

لما اضغط send تفتحلي نفس صفحه الايميل المدخل ولكن لم يرسلي رساله

انا اريد ان السستم هو الي يرسل الرساله وليس اليوزر الذي حل الاختبار

مثلا يكون ايميل اللسستم ثابت وهو [email protected]

نأسف لازعاجك ..

تحياتي لك ..

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

شارك هذا الرد


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

معروف أختي الكريمة أن Mailto ليست الطريقة الأنجح في إرسال بيانات ما إلى البريد.

الأسباب كثيرة لكن لأذكرك ببعضها، mailto تحتاج إلى دعم من المتصفح وليس كل المتصفحات تدعمها (الأغلب صحيح) - mailto تحتاج إلى أن يكون هناك إعداد لها في المتصفح يسمح أن يقوم بتمرير هذه الطلبات إما من خلال المتصفح عبر موقع ما أو من خلال برنامج Outlook express

في حالة البرنامج الثاني فيجب أن يكون معداً على الجهاز وإلا لن يتم الإرسال.

في حالة الارسال عبر صفحة موقع (غالبا Hotmail) فالنسخ الجديدة من الموقع يبدو أنها لا تدعمه بشكل صحيح!

مسألة استخدام mail ثابت أمر بسيط ومحلول.

ما تحتاجينه الآن هو طريقة يمكنك من خلالها إرسال البيانات بصورة صحيحة إلى البريد وأكثر الطرق أمناً ونجاحاً هو إرسال البيانات إلى صفحة PHP تقوم بتجميعها وجعلها في رسالة واحدة منسقة وأكثر قابلية للقراءة ومن ثم إرسالها إلى البريد المطلوب عبر دالة mail في دوال PHP.

موقع ذو صلة:

http://www.smartwebby.com/PHP/emailsending.asp

<?php

//Check whether the submission is made
if(isset($hidSubmit)){

//Declarate the necessary variables
$mail_to=$txtEmailto;
$mail_from=$txtEmailfrm;
$mail_sub=$txtSub;
$mail_mesg=$txtMsg;

//Check for success/failure of delivery
if(mail($mail_to,$mail_sub,$mail_mesg,"From:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='red'>E-mail has been sent successfully from $mail_sub to $mail_to</span>";
else
echo "<span class='red'>Failed to send the E-mail from $mail_sub to $mail_to</span>";
}
?>

0

شارك هذا الرد


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

شكرا لك اخي الكريم على التوضيح

ولكن كيف لي ان اربط هذه الصفحه بالصفحاتي ..

وكيف ارسل البيانات التي اريد ارسالها لهذه الصفحه لكي تقوم بارسالها ؟؟

قرأت الكود وقرأت كود ال html في الرابط المعطى ..

ولكن لم تتكون لدي صوره متكامله لكيفيه عمل ذلك ..!

$mail_mesg=$txtMsg;

هنا اضع المتغيرات المطلوبه id والنتيجه ؟

كيف ارسل المتغيرات ؟

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

شارك هذا الرد


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

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

تعديلات بسيطة على ملف bod.js

	results.document.writeln ("<form NAME='choices' action='sendmail.php' onsubmit='check();setTimeout(\"window.close(this)\",10000);return true;' method='post'>");
results.document.writeln ("<input type='hidden' name='e' value='"+ e + "'>");
results.document.writeln ("<input type='hidden' name='q' value='" + q + "'>");
results.document.writeln ("<input type='hidden' name='res' value=''>");
results.document.writeln ("ID: <input type='text' name='id' value='' size=30 maxlength=50>");
results.document.writeln ("<p><input type='submit' value='Submit'></p>");

لاحظي تغيير قيمة action='' وهي الصفحة التي سيتم إرسال البيانات إليها.

لاحظي إضافتي لحقول جديدة (e, q) ضمن الصفحة النهائية والتي سترسل أيضا للصفحة، السبب سيتضح الآن، انظري كود PHP

<?php

//Check whether the submission is made
if(isset($_POST['q'])){

//Declarate the necessary variables
$mail_to=$_POST['e'];
$mail_from="[email protected]";
$mail_sub="Quiz Results";
$mail_mesg=$_POST['id'] . "result on question: " . $_POST['q'] . " is " . $_POST['res'];

//Check for success/failure of delivery
if(mail($mail_to,$mail_sub,$mail_mesg,"From:$mail_from/r/nReply-to:$mail_from"))
echo "<span class='red'>E-mail has been sent successfully from $mail_sub to $mail_to</span>";
else
echo "<span class='red'>Failed to send the E-mail from $mail_sub to $mail_to</span>";
}
?>

لا استطيع اختبار صفحة PHP, يجب أن تقومي بتحميلها إما على استضافة مجانية تدعم PHP (والسيرفر يسمح باستخدام mail()) او تقومي بتحويل جهازك الشخصي إلى مستضيف محلي للتجربة. من أجل هذا تستطيعين مراجعة قسم PHP في المنتدى.

كود PHP أعلاه مختلف عن الذي ذكرته سابقاً لسبب بسيط، أنا تعاملت مع PHP من قبل بشكل سطحي وعندما كنت أجلب قيم متغيرات من صفحة ما كنت استخدم $_POST لفحصها واستخدامها، بما أنه لا يوجد لدي الخبرة الكافية في PHP لا أعلم إن كان الكود السابق أفضل :) على الأقل أضمن أن $_POST صحيحة إن شاء الله.

تم تعديل بواسطه Xacker
1

شارك هذا الرد


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

شكرا لك اخي الكريم للتوضيح ..

سوف احاول اختبارها ..

1

شارك هذا الرد


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

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

ممكن احصل كود الكوزات كامل لان محتاجه وشكرا

0

شارك هذا الرد


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

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

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