Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามปัญหา ajax รับค่าจาก php แบบไม่มีการ action หรือ กดปุ่มใดๆ



 

สอบถามปัญหา ajax รับค่าจาก php แบบไม่มีการ action หรือ กดปุ่มใดๆ

 



Topic : 132061



โพสกระทู้ ( 63 )
บทความ ( 0 )



สถานะออฟไลน์




ผมได้ประยุกต์จาก code นี้
https://www.webslesson.info/2017/04/inline-edit-data-by-using-x-editable-with-php-and-mysql.html

code PHP แสดงตาราง
Code (PHP)
<table class="table table-bordered table-striped">
    <thead>
     <tr>
      <th width="10%">ID</th>
      <th width="40%">Name</th>
      <th width="10%">Gender</th>
      <th width="30%">Designation</th>
      <th width="10%">Age</th>
     </tr>
    </thead>
    <tbody id="employee_data">
    </tbody>
   </table>



อันนี้ ajax ซึ่งจะรับค่าจาก php คือ $_GET['key']) แบบไม่มีการ action หรือ กดปุ่มใดๆ
Code (JavaScript)
function fetch_employee_data()
 {
  $.ajax({
   url:"fetch.php",
   method:"POST",
   dataType:"json",
   success:function(data)
   {
    for(var count=0; count<data.length; count++)
    {
     var html_data = '<tr><td>'+data[count].id+'</td>';
     html_data += '<td data-name="name" class="name" data-type="text" data-pk="'+data[count].id+'">'+data[count].name+'</td>';
     html_data += '<td data-name="gender" class="gender" data-type="select" data-pk="'+data[count].id+'">'+data[count].gender+'</td>';
     html_data += '<td data-name="designation" class="designation" data-type="text" data-pk="'+data[count].id+'">'+data[count].designation+'</td>';
     html_data += '<td data-name="age" class="age" data-type="text" data-pk="'+data[count].id+'">'+data[count].age+'</td></tr>';
     $('#employee_data').append(html_data);
    }
   }
  })
 }



อันนี้ code PHP
Code (PHP)
<?php
//fetch.php
$connect = mysqli_connect("localhost", "root", "", "testing");
$query = "SELECT * FROM employee WHERE key=$_GET['key']";  <------------เอาค่า   $_GET['key']  มาเป็นเงือนไขตรงนี้ 
$result = mysqli_query($connect, $query);
$output = array();
while($row = mysqli_fetch_assoc($result))
{
 $output[] = $row;
}
echo json_encode($output);
?>


คำถามก็คือ ผมใช้ Ajax รับค่าจาก php แบบไม่มีการ action หรือกดปุ่ม เพื่อใช้เป็นเงื่อนไขของข้อมูลตาราง
รบกวน เพื่อน พี่ๆ ที่ชำนาญ หน่อยนะครับ



Tag : PHP, JavaScript, Ajax, jQuery, Bootstrap Framework, WampServer







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-09-16 01:05:00 By : Takashi_7 View : 660 Reply : 8
 

 

No. 1



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้าไม่มีการ action ใดๆแต่ต้องการใช้ function

ที่ html บันทัดสุดท้าย ให้ใส่ script
Code (PHP)
<script>
setTimeout( ชื่อฟังก์ชั่นที่ต้องการ, xx);
// xx = เวลาเป็นวินาทีกะว่า browser render เสร็จแล้ว
</script>

แต่แนะนำให้ใช้ event body onload ครับ เพื่อชั่วร์ว่า browser render เสร็จแล้วจริงๆ
Code (PHP)
<body onload="ฟังก์ชั่นที่ต้องการ()">
แต่ถ้าใช้ jquery อยู่แล้ว
Code (JavaScript)
$(document).ready(()=>{
   ฟังก์ชั่นที่ต้องการ();
});







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-16 07:45:55 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 63 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-09-16 07:45:55
รายละเอียดของการตอบ ::
ลองทำแล้ว Error ตามข้างล่าง

Code (PHP)
<body onload="fetch_employee_data('<?php echo $_GET['key']; ?>')">

error1

Code (JavaScript)
<script language="javascript">
window.onload = fetch_employee_data('c37d695c6f1144abdefa8890a921b8fb');
//fetch_employee_data("<?php echo addslashes($_GET['key']); ?>")"
</script>

error2


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-16 16:59:13 By : Takashi_7
 

 

No. 3



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


fetch_employee_data( )
function นี้เขียนไว้ที่ไหน


และ tag <body> จะมีอยู่แค่ อันเดียว ทั้งไฟล์ html ครับ ถ้ามีมากกว่านี้ แสดงว่าเขียนผิดไวยกรณ์

<html>
<head>
...
</head>
<body> <<<< ----
....
</body>
</html>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-16 18:13:24 By : Chaidhanan
 


 

No. 4

Guest


ไม่รู้ใช่แบบนี้ไหม
Code (JavaScript)
function fetch_employee_data(key)
 {
  $.ajax({
   url:"fetch.php?Key="+key,
   method:"GET",
   dataType:"json",
   success:function(data)
   {
    for(var count=0; count<data.length; count++)
    {
     var html_data = '<tr><td>'+data[count].id+'</td>';
     html_data += '<td data-name="name" class="name" data-type="text" data-pk="'+data[count].id+'">'+data[count].name+'</td>';
     html_data += '<td data-name="gender" class="gender" data-type="select" data-pk="'+data[count].id+'">'+data[count].gender+'</td>';
     html_data += '<td data-name="designation" class="designation" data-type="text" data-pk="'+data[count].id+'">'+data[count].designation+'</td>';
     html_data += '<td data-name="age" class="age" data-type="text" data-pk="'+data[count].id+'">'+data[count].age+'</td></tr>';
     $('#employee_data').append(html_data);
    }
   }
  })
 }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-17 10:50:59 By : ดินทราย
 


 

No. 5



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


การวาง ลำดับการทำงานของโปรแกรม มีความสำคัญอยู่ไม่น้อย
ถ้าเราเรียกใช้ function ก่อนที่มันจะถูกประกาศ ก็จะ error ก็ดูอะไรควรอยู่ต้นไฟล์ อะไรควรอยู่ท้ายไฟล์
หรือการใช้ event เพื่อเรียกใช้งาน ก็จะสามารถจัดลำดับการทำงานได้เป็นอย่างดี

สงสัยทำไมถีงไม่อยากใช้ event ในการทำงาน ทั้งง่ายสดวก ในการวางโปรแกรม ให้เป็นระเบียบและเข้าใจได้ง่าย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-17 11:50:43 By : Chaidhanan
 


 

No. 6

Guest


ลองอ่าน asynchronous เพิ่มเติม
ต่อยอดด้วย ECMAScript ตอนนี้เวอร์ชั่น 2018 แล้วนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-17 17:10:24 By : xman
 


 

No. 7



โพสกระทู้ ( 63 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : ดินทราย เมื่อวันที่ 2018-09-17 10:50:59
รายละเอียดของการตอบ ::
...ขอบคุณสำหรับคำแนะนำนะครับ ใช่เลยครับ แบบนี้เลย แต่ติดที่ว่าตัวที่ action ไม่ได้ใช่ button ในการกด แต่ใช้ <body onload="fetch_employee_data( )"> แทน
ยัง Error ตามรูปเลย


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-09-17 11:50:43
รายละเอียดของการตอบ ::
...ขอบคุณสำหรับคำแนะนำนะครับ อาจจะต้องไปใช้ action button แทนล่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 10:35:22 By : Takashi_7
 


 

No. 8



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


<body onload="fetch_employee_data( key )"> สีแดงไม่ใส่ให้มัน ล่ะครับ

หรือกำหนด default ไว้ที่ function ก็ได้
function fetch_employee_data( key = 'xxx' ){
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-09-19 10:58:58 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามปัญหา ajax รับค่าจาก php แบบไม่มีการ action หรือ กดปุ่มใดๆ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่