ถาม select/list menu ของ php หน่อยครับ ทำยังไงให้ มันสามารถเอา value จากใน database แล้วทำให้ value ใน list/menu มันเหมือนกับ value ที่เอามาครับ
php, appserv
พอดี search แล้วหาไม่เจอเลยอยากจะถามหน่อยอะครับ
สมมุติว่าผมมี select/list menu เป็นแบบ dropdownlist จำนวนสามอัน ชื่อ cb1 cb2 และ cb3
cb1 มี value 0 คือ "-" และ value 1 คือ ="R"
cb1 มี value 0 คือ "-" และ value 1 คือ ="R" และ value 2 คือ "G"
cb1 มี value 0 คือ "-" และ value 1 คือ ="R" และ value 2 คือ "B"
แต่ใน database ผมมี 3 ช่อง ซึ่งเป็นเลข 1, 2, 2 ซึ่งจะเอาไปใส่ใน cb1, cb2 และ cb3 ตามลำดับ
เวลา onload หรือ เปิดหน้านี้ขึั้นมา
อยากให้ value ใน cb1, 2, 3 มันชี้ไปที่ value ตามเลข 1 2 2 เลยอะครับ ต้องทำยังไงหรอครับ
มันก็จะได้เป็น R G B , cb1, 2, 3 ตามลำดับTag : PHP, Ms SQL Server 2008
Date :
2013-02-10 12:55:09
By :
copsychus
View :
5810
Reply :
18
อ่ายแล้ว งงมากครับ
Date :
2013-02-10 12:59:13
By :
Ex-[S]i[L]e[N]t
ตามรูปนี้เลยครับ
ผมมี combobox แบบนี้อยุ่หลายๆอัน ตามภาพ ในภาพ combobox SIdeStreet จะมี value 0 กับ 1
0 ก็คือ "-" และ 1 ก็คือ "Ramkhamhaeng" ทุกครั้งที่หน้านี้โหลดขึ้นมา ใน กล่องอันนี้จะโชว์ คำว่า "-" ตลอด แต่ใน database ผมมี value ที่เป็น เลข 1 เมื่อโหลดขึ้นมาผมอยากให้ กล่องอันนี้ แทนที่จะชี้ไปทีั่ value 0, "-" ให้กลายเป็น ชี้ไปที่ value 1, "Ramkhamhaeng" ตาม value ใน database
ผมลองใช้ window.load แล้ว แต่มันไม่ work เท่าไหร่
setvalue[0] คือ value ของ combobox เ่ช่น 0,1,2,3 เอามาจาก value ใน database
setcombobobox[$setcount] คือ name ของ combobox
Code (JavaScript)
<script type="text/javascript">
function preload()
{
PreselectMyItem(<?=$setvalue[0]?>);
<? $setcount++ ?>
}
function PreselectMyItem(itemToSelect)
{ // Get a reference to the drop-down
var myDropdownList = document.frmUpload.<?=$setcombobox[$setcount]?>;
// Loop through all the items
for (iLoop = 0; iLoop< myDropdownList.options.length; iLoop++)
{
if (myDropdownList.options[iLoop].value == itemToSelect)
{
// Item is found. Set its selected property, and exit the loop
myDropdownList.options[iLoop].selected = true;
break;
}
}
}
window.onload = preload();
</script>
</head>
<body onLoad="preload()">
แต่มันมีปัญหาตรงที่ว่า Window.load ไม่สามารถโหลดหลายๆอันกันได้เช่น ผมเลยอยากหาวิธีที่มันดีกว่านี้ น่ะครับ
function preload()
{
PreselectMyItem(<?=$setvalue[0]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[1]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[2]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[3]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[4]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[5]?>);
<? $setcount++ ?>
PreselectMyItem(<?=$setvalue[6]?>);
}
Date :
2013-02-10 13:34:13
By :
copsychus
ลองแบบนี้ไหมครับเผื่อจะง่ายกว่า
Code (PHP)
$slide=1;
<select name="slide-street">
<option value="" <? if($slide == ""){ echo "selected"; }?>>-</option>
<option value="1" <? if($slide == 1){ echo "selected"; }?>>ramkhamhang</option>
<option value="2" <? if($slide == 2){ echo "selected"; }?>>bangkapi</option>
</select>
Date :
2013-02-10 13:41:53
By :
Ex-[S]i[L]e[N]t
<option> ที่มี selected="selected" จะถูกเลือกไว้ตั้งแต่แรกครับ
HTML
<select>
<option value="0">-</option>
<option value="1">R</option>
<option value="2">G</option>
<option value="3" selected="selected">B</option>
</select>
ตัวอย่างข้างบน B จะถูกเลือก
Date :
2013-02-10 13:52:48
By :
cookiephp
ได้แล้วครับ ขอบคุณมากเลยครับ
Date :
2013-02-10 14:13:07
By :
copsychus
ไม่อยากตั้งกระทู้ใหม่ขอถามในนี้เลยแล้วกันครับ
<input type="checkbox" name="cf1" value="1" />
ตัว checkbox นี้อะครับ พอกด Submit form แล้ว มันจะส่งเลข 1 ไปหน้าต่อไป ถ้าต๊ก แต่ถ้าไม่ติ๊กก็จะส่ง "" ไป
มีวิธีทำให้ ถ้าติ๊ก ก็ value เป็น 0 ถ้า ไม่ก็ 1 บ้างไหมครับ
ตอนนี้ใช้วิธีแบบ เอาตัว $check = $_POST[cf1] [หน้าหลังจากกด submit form]
ถ้า value ที่ส่งมา เป็น "" ไม่มีอะไร ก็ ให้เข้า if แล้วเปลี่ยน ให้เป็น "1" ครับ
ถ้ามีค่าอะไรส่งมา ก็ไม่ต้องทำไรครับ เช่น 0
Date :
2013-02-10 15:02:57
By :
copsychus
เรียบเรียงคำพูดใหม่ครับ ฟังแล้ว งงมากอ่ะ -.-
Date :
2013-02-10 15:15:38
By :
Ex-[S]i[L]e[N]t
คือ . . .
<input type="checkbox" name="cf1" value="1" /> ปรกติติ๊กแล้วกด submit form มันจะส่งไปเฉพาะตัว "1" อะครับ
ถ้าไม่ติ๊ก CheckBox ไปมันก็จะส่งไปแค่ ค่าว่างเปล่า ถ้าอยากทำแบบ ติ๊กถูก ให้ส่งเลข 0 ไม่ติ๊กให้ส่งเลข 1 ต้องทำยังไงบ้างหรอครับ
Date :
2013-02-10 17:13:56
By :
copsychus
Code (PHP)
$cf1=$_POST['cf1'];
if($cf == 1){
$Checked=0;
}else{
$Checked=1;
}
Date :
2013-02-10 17:17:43
By :
Ex-[S]i[L]e[N]t
แปลว่ามีเฉพาะวิธีนั้นใช่ไหมครับ เพราะตอนนี้ก็ใช้แบบด้านบนอยู่
if ได้ค่าว่างเปล่า ให้เปลี่ยนเป็น 0 , else ไม่ทำอะไร
Date :
2013-02-10 17:30:35
By :
copsychus
ถูกต้องครับเป็นวิธีที่ง่ายสุดแล้วครับ
Date :
2013-02-10 17:36:36
By :
Ex-[S]i[L]e[N]t
พอกดปุ่ม Add ให้ทำตามนี้
ถ้าใช้ $url[0] = date("ymdHis");
$url[1] = date("ymdHis")+1;
$url[2] = date("ymdHis")+2;
มีวิธีทำให้ date มันไม่ซ้ำกันไหมอะครับ เพราะถ้ากดปุ่ม add รัวๆ มันก็จะ date ซ้ำกันรัวๆ
ซึ่งว่ามีวิธีทำให้ กด ปุ่ม add แล้ว ขึ้นหน้าคำว่า please wait 5 sec แล้วค่อย return ไปหน้าเก่า บ้างไหมครับ
Date :
2013-02-11 08:19:14
By :
copsychus
กำหนดเป็น auto increment ได้ไหมครับ
หรือใช้พวก timestamp
หรือให้หน่วงเวลาก็ <meta HTTP-EQUIV="Refresh" CONTENT="1;URL=xxx.php" charset="utf-8">
ตรง CONTENT = "1; ก็เปลี่ยนเวลาเอาครับ หน่วยเป็นวินาที
Date :
2013-02-11 08:39:54
By :
nutsuanplu
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html; charset=windows-874">
<style type="text/css">
body {
background-color: #FFFFFF;
}
</style>
</HEAD>
<BODY onLoad="begintimer()">
<script language="">
var limit="0:10"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function begintimer(){
if (!document.images)
return
if (parselimit==1)
frmTest.submit();
//window.close();
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime="เวลาที่เหลือ <font color=red> "+curmin+" </font>นาที กับ <font color=red>"+cursec+" </font>วินาที "
else
if(cursec==0)
{
alert('หมดเวลาแล้วจ้า');
}
else
{
curtime="เวลาที่เหลือ <font color=red>"+cursec+" </font>วินาที "
}
document.getElementById('dplay').innerHTML = curtime;
setTimeout("begintimer()",1000)
}
}
//-->
</script>
<div align="left"> </div>
<br>
<TABLE border=0 cellSpacing=0 cellPadding=0 width=550 >
<TBODY>
<tr><td><div>
<form name="frmTest" action="delnews.php">
กรุณารอสักครู่...<br><br>
ข้อมูลการบันทึก<br>
</form></div><br>
<?PHP
include "thai_date.php";
$id=$_POST['id'];
$DateNow=Date("d_m_Y_Hi");
$datenews=$_POST['datenews'];
$subject=$_POST['subject'];
$datanews=$_POST['datanews'];
$start1 = thaistart1($datenews);
$start2 = thaistart2($start1);
include "../../config/connect.php";
mysql_connect($host,$user,$pw) or die("ติดต่อ Host ไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
mysql_query("collation_server = tis620_thai_ci");
if($_FILES["filUpload"]["name"] != "")
$new_name=$DateNow."_".$_FILES["filUpload"]["name"];
$path= "news/".$new_name;
{if(copy($_FILES['filUpload']['tmp_name'], $path))
{ $tmp_file =$_FILES['filUpload']['tmp_name'];
$fileme =$_FILES['filUpload']['name'];
}}
echo "วันที่บันทึก ::".$start2;
echo "<br>";
echo "หัวข้อข่าว ::".$subject;
echo "<br>";
echo "รายละเอียด ::".$datanews;
echo "<br>";
if($new_name==0){ $new_name = "NoDocument";}
else{echo "ชื่อไฟล์ ::".$new_name;}
echo "<br>";
$strSQL = "UPDATE table SET datenews='$start1' ,subject='$subject' ,datanews= '$datanews',new_name='$new_name' WHERE id=$id";
$sqlquery=mysql_db_query($dbname, $strSQL);
//$objQuery = mysql_query($strSQL);
echo "<br>";
echo "บันทึกข้อมูลเรียบร้อยแล้ว";
echo "<br>";
?>
<br>
<div id=dplay ></div>
</td></tr>
</TBODY></TABLE>
</BODY></HTML>
Date :
2013-02-11 08:46:41
By :
apisitp
เพิ่งเห็นคำถามใหม่
ขอตอบ No.10 ก่อนนะครับ
ไม่ได้มีแค่วิธีนั้นนะครับ
สามารถใช้ <input type="hidden" /> ได้อีกวิธีครับ ไม่ต้องไปยุ่งเกี่ยวกับ php เหมือนตัวอย่างใน No.9 ครับ
Code (PHP)
<html>
<body>
<form>
<input name="test" type="hidden" value="Value from INPUT type=hidden" />
<input name="test" type="checkbox" value="Value from INPUT type=checkbox" />
<input type="submit" />
</form>
<?php
print_r($_GET);
?>
</body>
</html>
หลักการคือ ตั้งชื่อ input ให้ซ้ำกันครับ โดยให้ checkbox อยู่หลัง hidden
ถ้า checkbox ถูกเช็ค มันก็จะใช้ค่าของ checkbox แต่ถ้าไม่ ก็จะใช้ค่าของ hidden
Date :
2013-02-11 08:50:21
By :
cookiephp
ขอบคุณครับ
Date :
2013-02-11 22:37:09
By :
copsychus
อันนี้อยากลองถามไว้หน่อยน่ะครับ พอดีไม่ค่อยแน่ใจว่า ถ้าผมมี Google map มันสามารถจะกำหนดได้ไหมว่า พอเปิดขึ้นมาหน้านี้ ให้ google map มันโชว์เฉพาะ เขตที่ผมกำหนดไว้ เส้นรอบวง จากจุดศูนย์กลาง ราว 5 กิโลเมตร ถ้ามีใครมากด ออกนอกวง ให้ขึ้น error แต่ถ้ามีใครกดในวง ให้เก็บค่า ละติจูด กับ ลองติจูต มา เพื่อโชว์ข้อมูลของสถานที่นั้น ในครั้งอื่นๆ โดยใช้ ลองติจูต กับ ละติจูด และมันพอจะเป็นไปได้ไหมว่า ให้ขึ้น เส้นรองวง 5 กิโลเมตร จากจุดศูนย์กลางตลอด? เพื่อให้คนที่มากด เค้ารู้ว่า เส้นมันกว้างแค่ไหน
ใครมีไอเดีย ก็แชร์กันหน่อยนะครับ
Date :
2013-02-12 07:55:21
By :
copsychus
ถ้าอยากจะเอา ข้อมูลจาก database แอดค่าใส่ใน select/list menu ต้องทำยังไงเหรอครับ
Date :
2013-02-18 17:51:29
By :
copsychus
Load balance : Server 02