ปัญหาการใช้ dropdown ในการเลือกข้อมูลจากฐานข้อมูล ทำอย่างไรพอเลือกข้อมูลแล้วจะไม่ให้หน้านั้น refresh
เอา onChange="window.location='?item='+this.value;" ในบรรทัดแรกออกไปครับ
Date :
2013-02-28 14:22:42
By :
earthchie
ขอบคุณครับ แล้วอีกวิธีนึงละครับ คือผมเลือก dropdown แล้วส่งค่าไป textbox ถ้าตัด onchange ออกมันจะไม่ได้น่ะครับ มีวิธีอื่นๆไหมครับ
ประวัติการแก้ไข 2013-02-28 14:31:39 2013-02-28 14:32:04
Date :
2013-02-28 14:27:15
By :
puldool
ajax_department.php
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function record(selDepartment){
$.ajax({url:"record.php",
async:false,
cache:false,
global:false,
type:'POST',
data:'Department='+selDepartment,
dataType:"html",
success: function(result){
$('#record').html(result);
}
});
}
</script>
</head>
<body>
<select id="selDepartment" onChange="record($('#selDepartment').val());">
<option value="บริหาร">บริหาร</option>
<option value="เทคโนโลยีสารสนเทศ">เทศโนโลยีสารสนเทศ</option>
</select>
<div id="record"></div>
</body>
</html>
record.php
Code (PHP)
<?
$Deparment=$_POST['Department'];
$select=mysql_query("SELECT * FROM tb_example WHERE Deparment='".$Deparment."'") or die (mysql_error());
while($Depart=mysql_fetch_array($select)){
echo $Depart['Department']."<br>";
}
?>
ลองประยุกค์ใช้ดูครับ
ประวัติการแก้ไข 2013-02-28 15:07:07
Date :
2013-02-28 14:55:17
By :
Ex-[S]i[L]e[N]t
ขอบคุณครับ
Date :
2013-02-28 17:49:39
By :
puldool
พี่ครับ ทำไงจะบันทึก ข้อมูลแบบนี้ได้ครับ
เช่น id = 1 value =5555
แต่ในฐานข้อมูล บันทึก id 5555 value 5555
คือทั้ง textbox กับ dropdown จำแต่ค่า value
Code (PHP)
<select name="lmName1" onChange="this.form.txtName.value = this.value;" id="lmName1">
<option value=""><-- Please Select Item --></option>
<?
$strSQL = "SELECT * FROM level_saraly ORDER BY level ASC";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
if($_GET["item"] == $objResult["level"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$objResult["lvsalary"];?>" <?=$sel;?>>
<?=$objResult["level"];?>
</option>
<?
}
?>
</select>
<input name="txtName" type="text" "></td>
ประวัติการแก้ไข 2013-02-28 19:48:16 2013-02-28 19:48:24 2013-02-28 20:07:03
Date :
2013-02-28 19:47:01
By :
puldool
ช่วยดูให้ทีนะครับ
Date :
2013-02-28 20:59:19
By :
puldool
น้องเอามาให้ดูแต่โค้ด SELECT แต่โค้ดบันทึก (UPDATE หรือ INSERT) มันอยู่ไหนล่ะครับ
แล้วแมวจะดูให้ได้อย่างไร
Date :
2013-02-28 22:07:29
By :
cookiephp
ขอบคุณครับพี่แมว
ปัญหาตอนนี้คือ ฟิล level กับ lvsalary ครับ
Code (PHP)
<?php
if(move_uploaded_file($_FILES["filUpload"]["tmp_name"],"myfile/".$_FILES["filUpload"]["name"]))
{
echo "Copy/Upload Complete<br>";
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("police_mamber");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");
$strSQL = "INSERT INTO ob ";
$strSQL .="(
id,idpeople,rank,sex,name,lastname,idposition,birth,
daypolice,ranknow,beforerank,daybefore,firstnow,daypositionnow,
objsalary,level,lvsalary,salary,manset,univer,levelmaster,editname,sv,pgg,
pbg,othergrad,address,pic) ";
$strSQL .="VALUES ";
$strSQL .="(
'".$_POST["id"]."',
'".$_POST["idpeople"]."',
'".$_POST["lmName3"]."',
'".$_POST["sex"]."',
'".$_POST["name"]."',
'".$_POST["lastname"]."',
'".$_POST["idposition"]."',
'".$_POST["birth"]."',
'".$_POST["daypolice"]."',
'".$_POST["ranknow"]."',
'".$_POST["beforerank"]."',
'".$_POST["daybefore"]."',
'".$_POST["firstnow"]."',
'".$_POST["daypositionnow"]."',
'".$_POST["lmName2"]."',
'".$_POST["lmName1"]."', ///////////////////// ชื่อของ dropdown ครับ
'".$_POST["txtName"]."',//////////////////////// ชื่อของ textbox ครับ
'".$_POST["txtNumberC"]."',
'".$_POST["lmName4"]."',
'".$_POST["lmName5"]."',
'".$_POST["levelmaster"]."',
'".$_POST["editname"]."',
'".$_POST["sv"]."',
'".$_POST["pgg"]."',
'".$_POST["pbg"]."',
'".$_POST["textarea10"]."',
'".$_POST["textarea11"]."',
'".$_FILES["filUpload"]["name"]."') ";
$objQuery = mysql_query($strSQL);
$id = mysql_insert_id(); // กรณีที่เป็นค่า auto increment
ประวัติการแก้ไข 2013-02-28 22:15:31
Date :
2013-02-28 22:14:11
By :
puldool
ก้อถุกแล้วครับจะได้ค่า value ที่ใส่มาเช่นหากให้ vales เป็น id;
จะง่ายกว่าน่ะครับส่วนแสดงก้อเป็น name เป็นต้น
ที่นี้ค่าที่โพสจะได้ id มาครับหน้าต่อไปก้ออย่างนี้ก้อได้ผมทำบ่อยๆๆน่ะง่ายดี
$id=$_post['id'];
/// สร้างตัวแปรใหม่
$sql = select * from test where id='".$id."';
$dbquery=mysql_query($sql);
$result=mysql_fetch($dbquery);
newid=$result['id'];
newname = $result['name'];
//ใส่ค่าใหม่ลงฐานข้อมูล
ประมารนี้ครับเขียนเยอะหน่อยแต่คนที่เขามาทำต่อง่ายและเข้าใจดี
Date :
2013-02-28 22:14:44
By :
dannan882
ตัวแปร $_POST["lmName1"] มีค่าเดียวกันกับ $_POST["txtName"]
เพราะน้องสั่งให้มันมีค่าเดียวกันใน onchange นี่ครับ
<select name="lmName1" onChange="this.form.txtName.value = this.value; " id="lmName1">
นั่นไม่ใช่สิ่งที่น้องต้องการหรือ
นี่นอกเรื่องนะครับ แมวแนะนำว่า ถ้าหากน้องจะ INSERT ฟิลด์เยอะขนาดนี้
MySQL ยังมี INSERT อีก syntax หนึ่งคือ INSERT INTO table SET name1 = value1, name2 = value2, ...
จะดูง่ายกว่าครับ
<?php
if(move_uploaded_file($_FILES["filUpload"]["tmp_name"],"myfile/".$_FILES["filUpload"]["name"]))
{
echo "Copy/Upload Complete<br>";
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("police_mamber");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");
$objQuery = mysql_query("
INSERT INTO ob
SET
id = '$_POST[id]',
idpeople = '$_POST[idpeople]',
rank = '$_POST[lmName3]',
sex = '$_POST[sex]',
name = '$_POST[name]',
lastname = '$_POST[lastname]',
idposition = '$_POST[idposition]',
birth = '$_POST[birth]',
daypolice = '$_POST[daypolice]',
ranknow = '$_POST[ranknow]',
beforerank = '$_POST[beforerank]',
daybefore = '$_POST[daybefore]',
firstnow = '$_POST[firstnow]',
daypositionnow = '$_POST[daypositionnow]',
objsalary = '$_POST[lmName2]',
level = '$_POST[lmName1]',
lvsalary = '$_POST[txtName]',
salary = '$_POST[txtNumberC]',
manset = '$_POST[lmName4]',
univer = '$_POST[lmName5]',
levelmaster = '$_POST[levelmaster]',
editname = '$_POST[editname]',
sv = '$_POST[sv]',
pgg = '$_POST[pgg]',
pbg = '$_POST[pbg]',
othergrad = '$_POST[textarea10]',
address = '$_POST[textarea11]',
pic = '{$_FILES["filUpload"]["name"]}'
");
$id = mysql_insert_id(); // กรณีที่เป็นค่า auto increment
ลองใช้ควบคู่กับการแนะนำให้ใช้ mysql_real_escape_string() และ sprintf() ในบทความนะครับ
ประวัติการแก้ไข 2013-02-28 22:57:57
Date :
2013-02-28 22:56:13
By :
cookiephp
ผมต้องการบันทึกข้อมูล
เช่น
ID NAME
1 A
2 B
dropdownlist เช่นเลือกข้อมูล A แล้วบันทึก
dropdown จะบันทึก 1 ฟิลด์ level
textbox จะบันทึก A ฟิลด์ lvsalary
ประมาณนี้น่ะครับ แต่ผมไม่รู้ว่าจะใส่ code ยังไง
ประวัติการแก้ไข 2013-02-28 23:10:04
Date :
2013-02-28 23:08:05
By :
puldool
โธ่ - -
คือพูดง่ายๆ ว่า
<option value="1 ">A </option>
สีแดงจะไปอยู่ใน level
และสีเขียวจะไปอยู่ใน lvsalary
ใช่มั้ยครับ
งั้นก็แก้ตรงนี้
<select name="lmName1" onChange="this.form.txtName.value = this.options[this.selectedIndex].innerHTML; " id="lmName1">
8iy[
Date :
2013-02-28 23:35:50
By :
cookiephp
ขอบคุณมากครับ
Date :
2013-02-28 23:46:05
By :
puldool
พี่ แมว หรือพี่คนไหนก็ได้ มีวิธีไหนมั่งครับ ทีเลือก drop down แล้ว
textbox 1 แสดง item
textbox 2 แสดง value
ในหน้านั้นเลย
Date :
2013-03-01 01:29:37
By :
puldool
แบบนี้ครับ (จัดรูปแบบให้อ่านง่ายๆ นะครับ)
<select
onchange="
this.form.textbox1 .value = this.value ;
this.form.textbox2 .value = this.options[this.selectedIndex].innerHTML ;
">
โดย textbox1 และ textbox2 เป็นชื่อของ <input /> ในฟอร์มของเราน่ะครับ
ลองสังเกตุดูดีๆ จริงๆ คำตอบนี้มันก็แค่เป็นการประยุกต์ใช้สิ่งที่ตอบๆ กันมาทั้งกระทุ้นะครับน้อง
Date :
2013-03-01 01:47:26
By :
cookiephp
พี่ แมวๆ ผมนั่งทำมะกี้ ได้แบบนี้ พอได้ไหมครับ รวมมิตร+จับฉ่าย
id I salary
----------------
6.5 I 7500
ให้ข้อมูลขึ้นที่ text แล้วก็ส่งชื่อ textbox 2 ตัว แทน drop
Code (PHP)
<script src="http://code.jquery.com/jquery-latest.js"></script>
<select name="lmName1" onChange="this.form.txtName.value = this.options[this.selectedIndex].innerHTML;" id="lmName1">
<option><-- Please Select Item --></option>
<?
$strSQL = "SELECT * FROM level_saraly ORDER BY level_id ASC";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
if($_GET["item"] == $objResult["level"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$objResult["lvsalary"];?>" <?=$sel;?>> <?=$objResult["level"];?>
</option >
<?
}
?>
<?
?>
</select>
<input name="txtName" type="text" align="left"> ///ตาม onchange
<input type="text" id="resultText" /> ////ตาม java script
<script>
$("select#lmName1").change(function(){ //ถ้ามีการคลิ๊กเพื่อเลือกจาก drop down ก็จะทำบรรทัดถัดไป
var choiceText = $(this).val(); //เอาข้อมูลจาก drop down ทีเลือก มาใส่ไว้ในตัวแปร choiceText
$("input#resultText").val(choiceText); //หลังจากนั้นก็นำไปให้กับ textbox ที่มีไอดีชื่อ resultText
});
</script>
ประวัติการแก้ไข 2013-03-01 01:52:17 2013-03-01 01:52:39 2013-03-01 01:52:47 2013-03-01 01:53:38 2013-03-01 01:54:49 2013-03-01 01:56:50 2013-03-01 01:57:59
Date :
2013-03-01 01:51:05
By :
puldool
มันก็ได้ครับ แต่มันดูประหลาดไปนิดครับ
ทำไมเราไม่รวมทุกอย่างเข้าด้วยกันล่ะครับ ไหนๆ จะใช้ jquery แล้ว
Code (PHP)
<script src="http://code.jquery.com/jquery-latest.js"></script>
<select name="lmName1" <!-- onChange="this.form.txtName.value = this.options[this.selectedIndex].innerHTML;" --> id="lmName1">
<option><-- Please Select Item --></option>
<?
$strSQL = "SELECT * FROM level_saraly ORDER BY level_id ASC";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
if($_GET["item"] == $objResult["level"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$objResult["lvsalary"];?>" <?=$sel;?>> <?=$objResult["level"];?>
</option >
<?
}
?>
<?
?>
</select>
<input name="txtName" type="text" align="left">
<input type="text" id="resultText" name="resultText" /> <!-- ใช้ name ดีกว่า มันเป็นกลไกที่สะดวกของ form อยู่แล้ว -->
<script>
$("select#lmName1").change(function(){ //ถ้ามีการคลิ๊กเพื่อเลือกจาก drop down ก็จะทำบรรทัดถัดไป
//var choiceText = $(this).val(); ไม่ต้องสร้างตัวแปรครับ ไม่จำเป็น
// $("input#resultText").val(choiceText); ไม่ต้องใช้ jq ครับ ไม่จำเป็น
this.form.resultText.value = this.value; // เอาตรงๆ เลยครับ เพราะ this คือตัว <select>
this.form.txtName.value = this.options[this.selectedIndex].innerHTML; // ย้ายจาก onclick มาอยู่ตรงนี้
});
</script>
Date :
2013-03-01 02:02:04
By :
cookiephp
ขอบคุณมากครับ ติดแค่นิดเดียว สนุกทั้งวันเลย 55
Date :
2013-03-01 02:50:01
By :
puldool
Load balance : Server 05