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

Registered : 107,234

HOME > PHP > PHP Forum > จะกำหนดตัวเลือก Listbox 2 จาก Listbox 1 ไดยังไง (เชื่อมกับ DATABASE)





 

จะกำหนดตัวเลือก Listbox 2 จาก Listbox 1 ไดยังไง (เชื่อมกับ DATABASE)

 



Topic : 133498



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



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



Listbox 1 และ 2
คือผมทำ Listbox มาทั้ง 2 ตัว และทั้งสองเชื่อมตัว Database ทั้งคู่ และผมอยากให้ Listbox 2 สร้างตัวเลือกจากตัวเลือกของ Listbox 1 ครับ
ซึ่งผมลองศึกษาหลายที่ เขาาบอกให้ใช้ AJAX แต่ผมดูโค้ตไม่ค่อยออก บางตัวไม่รู้ทำงานยังไง อยากให้คนมาอธิบายข้อมูลเพิ่มครับ
เว็บที่ศึกษา : https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/

หรือถ้ามีวิธีอื่นที่โอเคกว่าและเข้าใจง่ายกว่า ก็รบกวนแนะนำด้วยครับ พอดีเพิ่งเริ่มเขียนเว็บได้ไม่นานเลยไม่เข้าใจ



Tag : PHP, MySQL, Ajax, jQuery, Windows









ประวัติการแก้ไข
2019-04-21 01:25:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-04-21 01:18:54 By : myjack2007 View : 115 Reply : 16
 

 

No. 1



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


event onchange หา document อ่าน จะมีตัวอย่างการใช้งานให้ด้วย






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-21 08:01:23 By : Chaidhanan
 


 

No. 2



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



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

ลองกี่ทีก็ไม่ได้ผลเลยครับ
Code (PHP)
  <script src="Boostrap\js\jquery-1.11.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
          $(document).ready(function() {
            $('#Working').change(function() {
              var Ar = $(this).val();
              alert(Ar);
                $.ajax({
                    type: 'POST',
                    data: {Working: $(this).val()},
                    url: 'select_product.php',
                    success: function(data) {
                    $('#WorkingType').html(data);
                            }
                        });
                        return false;
                    });
                });
    </script>


อันนี้ตัว select box
Code (PHP)
<div class="form-row">
          <div class="form-group col-md-6">
          <label for="Working">ความอนุเคราะห์</label>
          <select name="Working3" class="form-control" id="Working" onchange="checkSelect(this.value);" required>
            <option selected></option>
            <?php
                  $sql = "SELECT * FROM tb_working ";
                  $result = mysqli_query($con,$sql);
                  while ($data = mysqli_fetch_array($result))
                  {
              ?> <!-- ปิดด้วย php เพื่อให้ใช้โค้ตื่นได้ -->
              <option value="<?php echo $data["wid"];?>"><?php echo $data["object_need"];?></option>
            <?php
            }
             ?>
          </select>
        </div>
          <div class="form-group col-md-6">
            <label for="WorkingType">งานที่ใช้</label>
            <select name="WorkingType3" class="form-control" id="WorkingType" disabled>
              <option selected></option>
            </select>
          </div>
        </div>


แล้วไฟล์ที่ไว้ตรวจสอบก็ลองแปลงให้เข้ากับไฟล์ของผมแล้ว
Code (PHP)
<?php
include "connectDB.php";
$Working_id = (isset($_POST['Working'])) ? $_POST['working'] : "";
echo $working_id;
$Query = mysqli_query($con,"SELECT * FROM tb_working_type WHERE Object_type='{$Working_id}'");

$Rows = mysqli_num_rows($Query);
echo $Rows;
if ($Rows > 0) {
    while ($Result = mysqli_fetch_array($Query)) {
        echo "<option value=\"" . $Result['wid'] . "\">" . $Result['object_need'] . "</option>";
    }
}else{
    echo "<option value=\"\">ไม่มีสินค้าในหมวดหมู่ที่เลือก</option>";
}
 ?>



ผลก็ออกมาแบบเดิมเลยครับ ว่างเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 08:54:11 By : myjack2007
 

 

No. 3



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



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

ไม่รู้ว่าโค้ดตัวนี้
ถูกหรือป่าวนะครับ ดูอีกที
Code (PHP)
<option selected></option>


มันน่าจะเป็น

Code (PHP)
<option></option>


หรือถ้ามันมีการส่งค่ามาให้จริงก็น่าจะเป็น

Code (PHP)
<option id="?????"></opiton>



ประวัติการแก้ไข
2019-04-22 09:17:35
2019-04-22 09:58:20
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 09:16:03 By : nobetaking
 


 

No. 4



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


04. <select name="Working3" class="form-control" id="Working" onchange="checkSelect(this.value);" required>

ข้างบน สีแดง ย้ายไปใส่ใน javascript เลย มันสร้าง event เรียกซ้ำซ้อน ก้น
อะไรทำงานก่อนอะไรทำงานหลัง คุณเข้าใจดีหรือเปล่า

Code (JavaScript)
$('#Working').change(function() {
   checkSelect(this.value);  // และทำอะไรก็ไม่รู้



Code (PHP)
<?php
include "connectDB.php";
$Working_id = (isset($_POST['Working'])) ? $_POST['working'] : "";
// echo $working_id; มาร์คเอาไว้ มันทำให้ข้อมูลไม่ถูกต้อง
$Query = mysqli_query($con,"SELECT * FROM tb_working_type WHERE Object_type='{$Working_id}'");

$Rows = mysqli_num_rows($Query);
// echo $Rows;  มาร์คเอาไว้ มันทำให้ข้อมูลไม่ถูกต้อง
if ($Rows > 0) {
    while ($Result = mysqli_fetch_array($Query)) {
        echo '<option value="' . $Result['wid'] . '">' . $Result['object_need'] . '</option>';
        // เปลี่ยนใช้ quote ให้ถูกกับงาน
        // หรือแบบนี้ echo "<option value='$Result[wid]' >$Result[object_need]</option>";
    }
}else{
    echo '<option value="">ไม่มีสินค้าในหมวดหมู่ที่เลือก</option>';
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 09:51:20 By : Chaidhanan
 


 

No. 5



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



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

โค้ตตัวนั้นมีไว้ให้เป็นค่าว่างครับ เอาไว้ตรวจสอบว่าผู้ใช้ต้องเลือก option ในกรณีที่ผู้ใช้ลืมเลือกครับ

แต่เดี๋ยวจะลองสังเกตดูอีกที
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 09:52:05 By : myjack2007
 


 

No. 6



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : nobetaking เมื่อวันที่ 2019-04-22 09:16:03
รายละเอียดของการตอบ ::
เป็นแค่ tag ตั้งต้น ไม่ได้ใช้


20.<select name="WorkingType3" class="form-control" id="WorkingType" disabled>
21.<option selected></option>

tag สีแดงจะถูกทับด้วย javascript
Code (JavaScript)
success: function(data) {
  $('#WorkingType').html(data);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 09:56:18 By : Chaidhanan
 


 

No. 7



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



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

ล่าสุด ทำตามคลิปต่างชาติแบบถี่ยิบ (มีแค่ jquery.js ที่ผมใช้เป็น jquery.min.js) ก็ยังไม่ได้ผลเลย T_T
Code (PHP)
<?php
function load_country(){
  include "connectDB.php";
  $output= '';
  $sql = "SELECT * FROM tb_working ORDER BY object_need";
  $result = mysqli_query($con, $sql);
  while ($row = mysqli_fetch_array($result)) {
    $output .= '<option value="'.$row["wid"].'">'.$row["object_need"].'</option>';
  }
  return $output;
}
 ?>
<hrml>
  <head>

  <title></title>
  <script src="jquery.min.js"></script>
  </head>
  <body>
    <p><label>เลือกความอนุเคราะห์</label>
    <select name="working" id="working">
      <option value="">เลือกความอนุเคราะห์</option>
      <?php echo load_country(); ?>
    </select></p>
    <p><label>เลือกความอนุเคราะห์</label>
    <select name="workingType" id="workingType">
      <option value="">เลือกหัวข้อ</option>

    </select></p>
  </body>
</html>


<script>
$(document).ready(function(){
    $('#working').change(function(){
      var working_W = $(this).val();
      $.ajax({
        url:"fetch_type.php",
        method:"POST",
        data:{workingW:working_W},
        success:function(data)
        {
            $('#workingType').html(data);
        }
      });
    });
});
</script>



fetch_type.php
Code (PHP)
<?php
include "connectDB.php";
$output = '';
$sql = "SELECT * FROM tb_working_type WHERE wid='".$_POST['workingW']."' ORDER BY working_type";
$result = mysqli_query($con, $sql);
$output='<option value="">เลือก</option>';
while ($row = mysqli_fetch_array($result)) {
  $output = '<option value="'.$row["wtid"].'">'.$row["working_type"].'</option>';
}
echo $output;

 ?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 09:58:45 By : myjack2007
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-04-22 09:56:18
รายละเอียดของการตอบ ::
ถ้างั้นต้องลบออกใช่มั้ครับ?

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:03:07 By : myjack2007
 


 

No. 9



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-04-22 09:56:18
รายละเอียดของการตอบ ::
ขอบคุณสำหรับความรู้ครับ อาจารย์ พอดีผมไปขุดเจอ
น่าจะเป็นตัวอย่างของเจ้าของกระทู้ ที่ไปแกะมา
มันไม่มี code ตัวนี้อยู่ครับ ผมก็เลยพลอยสงสัยไปด้วย
ไม่รู้ว่าเป็นตัวเดียวกับ จขกท.หรือป่าว
แต่มันคล้ายกันมาก 555

https://www.itoffside.com/select-multi-listbox-ajax-jquery-php/

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:06:27 By : nobetaking
 


 

No. 10



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


เพิ่มการตรวจสอบ error เข้าไปด้วย
Code (JavaScript)
$.ajax({
	url:"fetch_type.php",
	method:"POST",
       dataType: 'json',  // กำหนดการรับข้อมูลเป็น json
	data:{workingW:working_W},
	success:function(rs){
		if(rs.complete==1){
			$('#workingType').html(rs.data);
		}else{
			alert(rs.error)
		}
	},
	error: (jqXHR, exception){
		var msg = '';
		if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.';
		} else if (jqXHR.status === 404) { msg = 'Requested page not found. [404]';
		} else if (jqXHR.status === 500) { msg = 'Internal Server Error [500].';
		} else if (exception === 'parsererror') { msg = 'Requested JSON parse failed.';
		} else if (exception === 'timeout') { msg = 'Time out error.';
		} else if (exception === 'abort') { msg = 'Ajax request aborted.';
		} else { msg = 'Uncaught Error.\n' + jqXHR.responseText;
		}
		alert(msg);
	}
});


Code (PHP)
<?php
include "connectDB.php";
$output = '';
$sql = "SELECT * FROM tb_working_type WHERE wid='".$_POST['workingW']."' ORDER BY working_type";
$result = mysqli_query($con, $sql);
$output='<option value="">เลือก</option>';
while ($row = mysqli_fetch_array($result)) {
  $output = '<option value="'.$row["wtid"].'">'.$row["working_type"].'</option>';
}
echo json_encode(['complete'=>1, 'data'=>$output);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:10:53 By : Chaidhanan
 


 

No. 11



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



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

ตอบความคิดเห็นที่ : 9 เขียนโดย : nobetaking เมื่อวันที่ 2019-04-22 10:06:27
รายละเอียดของการตอบ ::
ใช่ครับ ผมลองแกะจากเว็บนี้มาลองใช้ดูกับ Database 2 ตัวของผมดู กับกระทู้ NO.7 ผมก็ลองทำแบบละเอียดจากวีดีโอต่างชาติ ผมลัพท์ก็เหมือนเดิมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:13:00 By : myjack2007
 


 

No. 12



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : myjack2007 เมื่อวันที่ 2019-04-22 10:03:07
รายละเอียดของการตอบ ::
ไม่ต้องครับ มันเป็น tag ตั้งต้น มีไว้ไม่ให้มัน ดูโล่ง หรือจะเอาออกก็ไม่เสียหาย


จากโค๊ดข้างบน ถ้ายังไม่มีอะไรเกิดขึ้น อีก ให้วิวซอร์ส จาก browser หรือ กด F12 ดู console log มันแจ้งerror อะไรบ้าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:15:59 By : Chaidhanan
 


 

No. 13



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



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

ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-04-22 10:10:53
รายละเอียดของการตอบ ::
ผมแก้ตามที่อาจารย์แนะนำแล้วกดดู Error แล้ว มันขึ้นว่า Uncaught SyntaxError: Unexpected token {
Code (PHP)
error: (jqXHR, exception){ //ตรงที่มีปัญหา
		var msg = '';
		if (jqXHR.status === 0) { msg = 'Not connect.\n Verify Network.';
		} else if (jqXHR.status === 404) { msg = 'Requested page not found. [404]';
		} else if (jqXHR.status === 500) { msg = 'Internal Server Error [500].';
		} else if (exception === 'parsererror') { msg = 'Requested JSON parse failed.';
		} else if (exception === 'timeout') { msg = 'Time out error.';
		} else if (exception === 'abort') { msg = 'Ajax request aborted.';
		} else { msg = 'Uncaught Error.\n' + jqXHR.responseText;
		}
		alert(msg);
	}
});


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 10:32:35 By : myjack2007
 


 

No. 14



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


(jqXHR, exception)=>{
โทษทีเพิ่มสีแดงด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 12:05:27 By : Chaidhanan
 


 

No. 15



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



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

Error คำเดิม ที่เดิมเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 13:28:26 By : myjack2007
 


 

No. 16



โพสกระทู้ ( 7,467 )
บทความ ( 1 )



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


เอาโค๊ดเต็มๆ ที่ทำมาดูอีกทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-04-22 14:54:07 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะกำหนดตัวเลือก Listbox 2 จาก Listbox 1 ไดยังไง (เชื่อมกับ DATABASE)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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