สอบถามเขียน ajax ส่งค่ากลับมาในฟอร์มถูกไหมครับ

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 4329
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

สอบถามเขียน ajax ส่งค่ากลับมาในฟอร์มถูกไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

เบื้องต้นต้องการดึงข้อมูลใน table บทความและโมดูล มาแสดงในฟอร์มครับ ซึ่งหลักการของผมคือใน view ทำajax ให้ขอข้อมูลใน controllers และ controllers ไปขอข้อมูลใน model model ก็ส่งค่ากลับไป controllers และไปยัง view เพื่อนำข้อมูลบทความและโมดูลมาแสดงในฟอร์มครับ
โค้ดที่ผมเขียนต้องปรับอะไรเพิ่มไหมครับ

โค้ดใน view

โค้ด: เลือกทั้งหมด

JFactory::getDocument()->addScriptDeclaration("
	jQuery(function($){
			$.ajax({
				url: 'index.php?option=com_mypagedesign&task=page.getAjaxData',
				type: 'POST',
				dataType: 'json',
				success: function(data) {
					let modules = data.modules;
					let contents = data.contents;
					console.log(modules);
					console.log(contents);

				}
			});
	});
");
โค้ดใน Controllers

โค้ด: เลือกทั้งหมด

class MypagedesignControllerPage extends FormController 
{
      public function getAjaxData() 
      {
        $model = $this->getModel('page');
        $data = $model->getDataArticleModule();
        echo $data;
        JFactory::getApplication()->close();
     }
}
โค้ดใน models

โค้ด: เลือกทั้งหมด

class MypagedesignModelPage extends JModelAdmin {

        public function getDataArticleModule()
	{
		$db = JFactory::getDBO();
        $query = $db->getQuery(true);
        $query->select($db->qn(array('id','title')))
        	->from($db->qn('#__content'))
			->where($db->qn('state'). ' = ' . $db->q('1'))
			->order($db->qn('id'). ' DESC');
        $db->setQuery($query);
        $contents = $db->loadAssocList();

		$query = $db->getQuery(true);
        $query->select($db->qn(array('id', 'title')))
			->from('#__modules')
			->where($db->qn('published'). ' = ' . $db->q('1'))
			->order($db->qn('id'). ' DESC');
        $db->setQuery($query);
        $modules = $db->loadAssocList();

        $data = array(
            'modules' => $modules,
            'contents' => $contents
        );

        return json_encode($data);
	}
}
ผลลัพธ์ที่ได้ console
Joomla Development-1.png
Joomla Development-1.png (38.13 KiB) Viewed 825 times
:gfb:
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามเขียน ajax ส่งค่ากลับมาในฟอร์มถูกไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

การเขียนแบบ oop ตามหลักจะพยายามแยกส่วนการทำงานออกเป็น function ต่างๆ ซึ่งควรจะทำงานแค่อย่างเดียว เช่น function สำหรับดึง content ก็ดึง content อย่างเดียวครับ

ในส่งค่ากลับมาเป็น json อยากให้กำหนด header เพิ่มเติมด้วยครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 50