10/10/2018, 11:03

Hỏi về php & Jquery

Em muốn làm một cái form trong đó có 3 cái thẻ select và một cái datasource chứa dữ liệu.
Yêu cầu là :
Khi chọn thẻ select thứ nhất nó sẽ xổ ra thẻ select thứ 2 để mình chọn, sau đó chọn tiếp thẻ thứ 2 nó sẽ xổ ra thể thứ 3(Các dữ liệu lấy từ mysql).
Rồi sau đó lấy 3 giá trị của 3 thẻ select ở trên để đổ dữ liệu vào datasourct theo các tiêu trí đã chọn..........
Giúp em với !!
viết 13:07 ngày 10/10/2018
Bạn có thể vào trang này để tham khảo:
http://vietnamtravel-destinations.co...edition-8-days
Ở tab Book/Request Info --> Bạn nhìn thấy mục Tour information:
Khi bạn chọn tour type thì mục tour name xuất hiện các danh mục khác.
Bạn view source lên là biết đó.
vuongquangnoi viết 13:07 ngày 10/10/2018
Được gửi bởi langthang68
Bạn có thể vào trang này để tham khảo:
http://vietnamtravel-destinations.co...edition-8-days
Ở tab Book/Request Info --> Bạn nhìn thấy mục Tour information:
Khi bạn chọn tour type thì mục tour name xuất hiện các danh mục khác.
Bạn view source lên là biết đó.
view source chỉ có thể xem được các thẻ HTML thôi mà
1024KB viết 13:10 ngày 10/10/2018
cái này thì anh hơi ngại giải thích. Post cái code basic cho em xem:
file view.php
Code:
<select id="sel1">
   <!-- ví dụ giá trị nào đó -->
   <option value="1">Value 1</option>
   <option value="2">Value 2</option>
   <option value="3">Value 3</option>
</select>
<select id="sel2">
   <option value="-1">Select 2</option>
</select>
<select id="sel3">
   <option value="-1">Select 3</option>
</select>
<!-- JQuery -->
<script type="text/javascript">
    //code select 1
    $('#sel1').change(function(){
       $('#sel2').load('http://localhost/test/ajax.php?type=sel1', {val: $(this).val()});//url thực hiện việc load dữ liệu theo giá trị của select 1
    });
    //code select 2
    $('#sel2').change(function(){
         $('#sel3').load('http://localhost/test/ajax.php?type=sel2', {val: $(this).val()});
    });
</script>
file ajax.php (xử lý dữ liệu)
Code:
<?php

include 'dbconn.php'; //cái này chắc tự làm được. chỉ là cái file kết nối csdl thôi

$type = $_GET['type'];
$val = $_POST['val'];

switch($type){
   case 'sel1':
      get_data_sel1();
      break;
   case 'sel2':
      get_data_sel2();
      break;
}

function get_data_sel1(){
    $Q = mysql_query("SELECT * FROM table_sel1 WHERE sel_id = " . $val);
    while($obj = mysql_fetch_object($Q)){
       echo '<option value="'.$obj->id.'">'.$obj->name.'</option>';
    }
}
function get_data_sel2(){
    $Q = mysql_query("SELECT * FROM table_sel2 WHERE sel_id = " . $val);
    while($obj = mysql_fetch_object($Q)){
       echo '<option value="'.$obj->id.'">'.$obj->name.'</option>';
    }
}
Cái này anh code tay, chưa có test. Em test thử xem. Nhớ là file view.php chèn thêm thư viện jquery nhé.
vanlien129 viết 13:19 ngày 10/10/2018
Anh ơi em test nó không chạy.........Hjx
1024KB viết 13:15 ngày 10/10/2018
Sorry. Anh đã test lại rồi. Code hoàn thiện đây.
file view.php:
Code:
<html>
	<head>
		<script language="javascript" src="http://code.jquery.com/jquery-1.4.4.js"></script>
	</head>
	<body>
		<select id="sel1">
		   <!-- ví dụ giá trị nào đó -->
		   <?php
		   	include 'dbconn.php';
		   	$Q = mysql_query("SELECT * FROM table_sel");
		   	while($obj = mysql_fetch_object($Q)){
		   		echo '<option value="'.$obj->id.'">'.$obj->name.'</option>';
		   	}
		   ?>
		</select>
		<select id="sel2">
		   <option value="-1">Select 2</option>
		</select>
		<select id="sel3">
		   <option value="-1">Select 3</option>
		</select>
		<!-- JQuery -->
		<script type="text/javascript">
		    //code select 1
		    $("#sel1").bind("change",function(){
		       $("#sel2").load("http://localhost/test/ajax.php?type=sel1", {val: $(this).val()});
		    });
		    //code select 2
		    $("#sel2").bind("change",function(){
		         $("#sel3").load("http://localhost/test/ajax.php?type=sel2", {val: $(this).val()});
		    });
		</script>
	</body>
</html>
file ajax.php:
Code:
<?php
include 'dbconn.php';

$type = $_GET['type'];
$val = $_POST['val'];

//echo '<option>'.$type.'</option>';
//echo '<option>'.$val.'</option>';

switch($type){
   case 'sel1':
      get_data_sel1($val);
      break;
   case 'sel2':
      get_data_sel2($val);
      break;
}

function get_data_sel1($val){
    $Q = mysql_query("SELECT * FROM table_sel1 WHERE sel_id = ".$val);
    $nr = mysql_num_rows($Q);
    if ( $nr) {
    	while($obj = mysql_fetch_object($Q)){
     		echo '<option value="'.$obj->id.'">'.$obj->name.'</option>';
	    	}
    } else {
    	echo '<option>Not update yet.</option>';
    }
    
}
function get_data_sel2($val){
    $Q = mysql_query("SELECT * FROM table_sel2 WHERE sel1_id = " . $val);
    $nr = mysql_num_rows($Q);
    if ($nr) {
    	while($obj = mysql_fetch_object($Q)){
	       echo '<option value="'.$obj->id.'">'.$obj->name.'</option>';
	    }
    } else {
    	echo '<option>Not update yet.</option>';
    }
}
file dbconn.php:
Code:
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("test", $link);
vanlien129 viết 13:03 ngày 10/10/2018
Em cám ơn anh, em lam được rùi ạ.
Bài liên quan
0