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

عمل فورم طلب موعد و ارسال الموعد لايميل معين

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

السلام عليكم

انا عندي مشكلة عملت فورم لطلب موعد للمريض مع دكتور معين بهذه الصورة

Patient's Name

Appointment Date

Appointment Time

Mobile Number

Best Time to Call Back

Alternate Time

Alternate Date

Choose Doctor (قائمة باسماء الدكاترة من sql data base)

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

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

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

هذا الكود

<?php

defined('_JEXEC') or die();

jimport( 'joomla.application.component.model' );

class AppointmentModelAppointment extends JModel

{

function getDoctorName($id)

{

$query = 'SELECT firstname,lastname FROM #__doctor WHERE id='.$id;

$this->_db->setQuery( $query );

$rows = $this->_db->loadObjectList();

$FullName=$rows[0]->firstname." ".$rows[0]->lastname;

return $FullName;

}

function getDoctor3()

{

$query = 'SELECT id AS value,CONCAT(firstname,lastname) as text FROM #__doctor ORDER by firstname';

$doctors[] = JHTML::_('select.option', '0', JText::_( 'Select Prefrence' ));

$this->_db->setQuery($query);

$doctors = array_merge($doctors, $this->_db->loadObjectList());

$lists = JHTML::_('select.genericlist', $doctors,'prefrence', ' class="inputbox" style="width:150px;" size="1"', 'value', 'text','');

return $lists;

}

function store()

{

global $mainframe;

$row =& $this->getTable();

$data = JRequest::get( 'post' );

// Bind the form fields to the appointment table

if (!$row->bind($data))

{

$this->setError($this->_db->getErrorMsg());

return false;

}

// Make sure the appointment record is valid

if (!$row->check()) {

$this->setError($this->_db->getErrorMsg());

return false;

}

// Store the web link table to the database

if (!$row->store()) {

$this->setError( $row->getErrorMsg() );

return false;

}

$this->sendmail($data);

$mainframe->redirect("index2.php?option=com_content&view=article&id=110&Itemid=144");

return true;

}

function sendmail($post)

{

global $mainframe;

$mailfrom = $mainframe->getCfg( 'mailfrom' );

$fromname = $mainframe->getCfg( 'fromname' );

$email ="rasha.alcattan@almashfa.com";

$subject="New Appointment";

$message='<table width="100%" border="0">

<tr>

<td><b>'.JText::_("Patient's Name").'</b></td>

<td>'.$post['patientname'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Appointment Date").'</b></td>

<td>'.$post['appointmentdate'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Appointment Time").'</b></td>

<td>'.$post['appointmenttime'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Mobile Number").'</b></td>

<td>'.$post['mobile'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Best Time to Call Back").'</b></td>

<td>'.$post['callbacktime'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Alternate Date").'</b></td>

<td>'.$post['alternatedate'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Alternate Time").'</b></td>

<td>'.$post['preferredtime1'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Prefrence").'</b></td>

<td>'.$this->getDoctorName($post['prefrence']).'</td>

</tr>

</table>';

JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message,$mode=1);

}

}

#2

اضف في الاستعلام اسم الحقل الخاض با اسماء الدكاترة واستخرج حسب اسم الدكتور

#3

تفضل اخي عدلت لك الكود

لكن على اساس انو في عندك حقل اسمه email موجود على جدول doctor

<?php

defined('_JEXEC') or die();

jimport( 'joomla.application.component.model' );

class AppointmentModelAppointment extends JModel
{
	function getDoctorName($id)
	{
		$query = 'SELECT firstname,lastname FROM #__doctor WHERE id='.$id;
		$this->_db->setQuery( $query );
		$rows = $this->_db->loadObjectList();
		$FullName=$rows[0]->firstname." ".$rows[0]->lastname;
		return $FullName;
	}
	function getDoctorEmail($id)
	{
		$query = 'SELECT email FROM #__doctor WHERE id='.$id;
		$this->_db->setQuery( $query );
		$rows  = $this->_db->loadObjectList();
		$Email = $rows[0]->email;
		return $Email;
	}
	function getDoctor3()
	{
		$query = 'SELECT id AS value,CONCAT(firstname,lastname) as text FROM #__doctor ORDER by firstname';
		$doctors[] = JHTML::_('select.option', '0', JText::_( 'Select Prefrence' ));
		$this->_db->setQuery($query);
		$doctors = array_merge($doctors, $this->_db->loadObjectList());
		$lists = JHTML::_('select.genericlist', $doctors,'prefrence', ' class="inputbox" style="width:150px;" size="1"', 'value', 'text','');
		return $lists;
	}
	function store()
	{
		global $mainframe;
		$row =& $this->getTable();
		$data = JRequest::get( 'post' );
		// Bind the form fields to the appointment table
		if (!$row->bind($data))
		{
			$this->setError($this->_db->getErrorMsg());
			return false;
		}

		// Make sure the appointment record is valid
		if (!$row->check()) {
			$this->setError($this->_db->getErrorMsg());
			return false;
		}

		// Store the web link table to the database
		if (!$row->store()) {
			$this->setError( $row->getErrorMsg() );
			return false;
		}
		$this->sendmail($data);
		$mainframe->redirect("index2.php?option=com_content&view=article&id=110&Itemid=144");
		return true;
	}
	function sendmail($post)
	{
		global $mainframe;
		$mailfrom = $mainframe->getCfg( 'mailfrom' );
		$fromname = $mainframe->getCfg( 'fromname' );
		$email = $this->getDoctorEmail($post['prefrence']);
		$subject="New Appointment";
		$message='<table width="100%" border="0">
		<tr>
		<td><b>'.JText::_("Patient's Name").'</b></td>
		<td>'.$post['patientname'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Appointment Date").'</b></td>
		<td>'.$post['appointmentdate'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Appointment Time").'</b></td>
		<td>'.$post['appointmenttime'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Mobile Number").'</b></td>
		<td>'.$post['mobile'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Best Time to Call Back").'</b></td>
		<td>'.$post['callbacktime'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Alternate Date").'</b></td>
		<td>'.$post['alternatedate'].'</td>
		</tr>
		<tr>
		<td><b>'.JText::_("Alternate Time").'</b></td>
		<td>'.$post['preferredtime1'].'</td>
		</tr>

		<tr>
		<td><b>'.JText::_("Prefrence").'</b></td>
		<td>'.$this->getDoctorName($post['prefrence']).'</td>
		</tr>
		</table>';

		JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message,$mode=1);
	}
}

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#4

السلام عليكم

اشكرك اخي الفاضل على المساعدة

بس للاسف زودت خانة email في جدول doctor

وعملت نفس الكود ما ضبط معايا ما يترسل الايميل ولا تفتحلي الصفحة اللي فيها مكتوب نو تم استلام الطلب :sad:

فين ممكن يكون الخطا؟

هل لازم ازيد خانة email كمان في جدول المواعيد؟

#5

بس الموعد يتعبى فى الداتا بيس بس ما يترسل الايميل ولا يظهر فورم التاكيد

#6

يفترض ان يكون حقل email موجود اصلا ً ولا تقوم بإنشائه ويحتوي على ايميلات الدكاترة

اكيد المشكلة عندك في حقل البريد الالكتروني , عدل حقل email الموجود في الكود الى حقل البريد الالكتروني عندك في قاعدة البيانات

او ضع صورة من جدول الدكاترة حتى نعرف الخلل وين

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#7
M.B.O كتب:

يفترض ان يكون حقل email موجود اصلا ً ولا تقوم بإنشائه ويحتوي على ايميلات الدكاترة

اكيد المشكلة عندك في حقل البريد الالكتروني , عدل حقل email الموجود في الكود الى حقل البريد الالكتروني عندك في قاعدة البيانات

او ضع صورة من جدول الدكاترة حتى نعرف الخلل وين

ارفقت الصورة و نوع الحقل

شكرا اخي على المساعدة

post-258853-013584400 1331556355_thumb.p

post-258853-039589700 1331556471_thumb.p

المرفقات
doctors.pngemail.png
#8

اولا ً جرب الارسال للدكتور الذي اسمه Dr. Ahmad او الدكتور Dr. Abdul Zaher

وشوف النتيجة

اذا لم تنفع قم بعملية طباعة للمتغير email$ من خلال ازالة اكود دالة sendmail واستبدالها بالكود التالي

function sendmail($post)
        {
                $email = $this->getDoctorEmail($post['prefrence']);
                echo $email;
        }

يفترض ان يتم طباعة البريد الالكتروني للشخص اذا لم يتم طباعة البريد الالكتروني جرب تغيير كود الدالة الى

function sendmail($post)
        {
                $email = $this->getDoctorName($post['prefrence'])
                echo $email;
        }

واخبرني ماذا يطبع لك هل اسم الدكتور ام ماذا

اعتقد ان المشكلة في الاستعلام عن البريد الالكتروني لان في الحقيقة ليست عندي فكرة عن الية عمل نظام Joomla ولا استطيع تجربة الاكواد عندي لذا انت جرب واخبرني ماذا يحصل معك

تم تعديل هذه المشاركة بواسطة M.B.O في 12 مارس 2012 في 19:01

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#9

السام عليكم

صحيح اظن المشكلة في الاستعلام عن الايميل

لاني اضفت كود لطباعة الايميل بس ما ظهر

Patient's Name ttt

Appointment Date 2012-03-15

Appointment Time 01:0:AM

Mobile Number 42423

Best Time to Call Back 02:0:AM

Alternate Date 2012-03-15

Alternate Time 04:0:AM

Prefrence Dr Ahmad Attar

Email

عدلت في اخر سطرين ضفت كود الطباعة الكود الايميل جاني بس ما انطبع الاستعلام عنو معناها في مشكلة فيه :sad: صراحة ما ادري من فييين :S

function sendmail($post)

{

global $mainframe;

$mailfrom = $mainframe->getCfg( 'mailfrom' );

$fromname = $mainframe->getCfg( 'fromname' );

$email ="rasha@gmail.com";

$subject="New Appointment";

$message='<table width="100%" border="0">

<tr>

<td><b>'.JText::_("Patient's Name").'</b></td>

<td>'.$post['patientname'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Appointment Date").'</b></td>

<td>'.$post['appointmentdate'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Appointment Time").'</b></td>

<td>'.$post['appointmenttime'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Mobile Number").'</b></td>

<td>'.$post['mobile'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Best Time to Call Back").'</b></td>

<td>'.$post['callbacktime'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Alternate Date").'</b></td>

<td>'.$post['alternatedate'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Alternate Time").'</b></td>

<td>'.$post['preferredtime1'].'</td>

</tr>

<tr>

<td><b>'.JText::_("Prefrence").'</b></td>

<td>'.$this->getDoctorName($post['prefrence']).'</td>

</tr>

<tr>

<td><b>'.JText::_("Email").'</b></td>

<td>'.$this->getDoctorEmail($post['prefrence']).'</td>

</tr>

</table>';

JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message,$mode=1);

}

}

#10

ضبط اخيرا الحمد لله :)

نفس الكود اللي عدلتلي عليه في الاول بس كان فعلا عندي خطاء في احد خانات الايمل

من جهة الداتا بيس مو الكو و لما صلحت الايميل ضبط

يعطيك الف عافية

#11

الحمد لله :blush:

426352_383613794982755_100000024148433_1533782_183796882_n.jpg

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

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

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

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

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