|
|
|
php พอกดปุ่ม back กลับไปแล้วข้อมูลที่ drop-down box หายไป อยากให้มันคงอยู่ไว้ ช่วยด้วยนะคะ |
|
|
|
|
|
|
|
อยากสอบถามว่า อยากให้ เมื่อถ้าเลือก drop-down box แล้วหากเลือก EQCode (Serial number ของเครื่องคอมพิมเตอร์) ซ้ำกันจะไม่สามารถทำรายการยืมได้ให้กลับไปเลือกใหม่แต่พอ back กลับไปข้อมูลใน text box ยังอยู่ทุกอย่างแต่ใน drop-down box มันหายไปหมดเลยอะคะ จะทำยังไงให้คงอยู่เหมือนเดิมคะ
นี่หน้า interface ตอนก่อนยืมอุปกรณ์คะ
แล้วนี่พอกด back กลับไปคะ
ส่วนนี่โคดหน้า interface คะ
Code (PHP)
<?php
$sql = "SELECT EQCode from product where status='ว่าง' order by EQCode";
$result_EQCode = mysql_query($sql);
?>
<?php
$wantcount = true;
$counter_file = "lib/counter.txt";//สร้างไฟล์ใน notepad แล้วตั้งชื่อนี้ counter.txt แล้วpermission 777
if($wantcount){
if (file_exists($counter_file) and is_writeable($counter_file)){
$fp = fopen($counter_file,"r+") or die("Read File Error !");
$count = fread($fp, filesize($counter_file));
fclose($fp);
$fp = fopen($counter_file,"w+") or die("Write File Error !");
fputs($fp, $count);
fclose($fp);
}
}
$num = str_pad($count,5,"0",STR_PAD_LEFT);
?>
<div style="float:left; width:360px;">
<form action="add_borrow_todb.php" method="post" name="borrow" onsubmit="return validateForm();" >
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;">เลขที่ใบยืม</span><input type="text" name="Borrow_Id" value="<?php echo "PTTICT-".date('dm')."-".$num?>" readonly/>
</div>
<br>
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;">รหัสผู้ใช้บริการ</span><input type="text" name="B_Id" maxlength="10" placeholder="10 หลัก"/>
</div>
<br>
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;"><p>ชื่องานที่ใช้(รายละเอียด)</p></span>
<textarea cols="20" rows="5" name="Detail"></textarea>
</div>
<br>
<div id="addinput" class="input-prepend input-append">
<p>
<span class="add-on" style="width:150px;">EQCode</span>
<?php
$sql = "SELECT EQCode FROM product where status='ว่าง' order by EQCode";
$result = mysql_query($sql);
echo "<select name=\"Product[]\">กรุณาเลือกเครื่องด้วยคะ";
while($rows = mysql_fetch_array($result)){
echo "<option>";
echo $rows[0];
echo "</option>";
}
echo "</select>";
?>
<span class="add-on"><a href="#" id="addNew">เพิ่ม</a></span>
</p>
</div><!--Add Input-->
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;">วันที่รับเครื่อง</span><input type="date" name="Borrowdate" />
</div>
<br>
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;">กำหนดส่งเครื่อง</span><input type="date" name="Returndate" />
</div>
<br>
<div class="input-prepend">
<span class="add-on" style="margin-bottom:10px; width:150px;">หมายเหตุ</span><input type="text" name="Note" />
</div>
<br>
<input class="btn btn-info" type="submit" id='btn1' value="submit" onclick="return confirm('กรุณายืนยันการยืมอีกครั้ง !!!')">
</form>
</div><!-- float left-->
<?php
$sql= $sql = "SELECT * from borrower";
$result= mysql_query($sql);
?>
<div style="float:right; width:450px; background-color:#D8D8D8;">
<table><tr><td>รหัสผู้ใช้</td><td>ชื่อ</td></tr>
<?php while($rows = mysql_fetch_array($result)):?>
<tr>
<td><?php echo $rows[0];?></td>
<td><?php echo $rows[1];?></td>
</tr>
<?php endwhile;?>
</table>
</div>
ส่วนนี่โค้ดติดต่อฐานข้อมูลคะ
Code (PHP)
<?php
$Borrow_Id = $_POST['Borrow_Id'];
$B_Id = $_POST['B_Id'];
$Detail = $_POST['Detail'];
$Borrowdate = $_POST['Borrowdate'];
$Returndate = $_POST['Returndate'];
$Note = $_POST['Note'];
$product = $_POST['Product'];
$product_new =array_unique($product);
if(count($product_new)!=count($product))
{
echo "หมายเลข EQCode ที่เลือกมีรายการซ้ำกันอยู่กรุณากลับไปตรวจสอบด้วยนะคะ";
echo "<a href=\"javascript:history.back();\">กลับไปแก้ไขรายการ</a>";
exit();
}
$sql = "INSERT INTO stock(Borrow_Id,B_Id,Detail,Borrowdate,Returndate,Note) VALUES('$Borrow_Id','$B_Id','$Detail','$Borrowdate','$Returndate','$Note')";
//echo $sql;
if(mysql_query($sql))
{
echo "บันทึกข้อมูลเรียบร้อยแล้วคะ<br/>";
echo "<a href=\"borrow.php\">Back</a>";
} else {
echo "ไม่สามารถบันทึกข้อมูลได้กรุณาลองใหม่<br/>";
echo "<a href=\"javascript:history.back();\">Back</a>";
}
$result = count($product);
$i = 0;
while ( $i<$result ){
//echo $n;
$sql="INSERT INTO borrow_product(Borrow_Id,EQCode) VALUES('$Borrow_Id','$product[$i]')";
//echo $sql."<hr>";
mysql_query($sql);
$sql = "UPDATE product SET status='ไม่ว่าง' WHERE EQCode='$product[$i]'";
//echo $sql."<hr>";
mysql_query($sql);
$i++;
}
?>
<?php
$wantcount = true;
$counter_file = "lib/counter.txt";//สร้างไฟล์ใน notepad แล้วตั้งชื่อนี้ counter.txt แล้วpermission 777
if($wantcount){
if (file_exists($counter_file) and is_writeable($counter_file)){
$fp = fopen($counter_file,"r+") or die("Read File Error !");
$count = fread($fp, filesize($counter_file));
fclose($fp);
$fp = fopen($counter_file,"w+") or die("Write File Error !");
$count +=1;
$count =$count;
fputs($fp, $count);
fclose($fp);
}
}
?>
ขอโทษด้วยนะคะที่กระทู้อาจจะยาวไป เพราะไม่เข้าใจจริงๆว่าจะทำยังไง รบกวนช่วยดูให้หน่อยนะคะและขอวิธีการทำอย่างละเอียดด้วยคะ
พอดีลองแก้มาหลายอย่างแล้วงงมากๆคะ
ขอบคุณคะ
Tag : PHP, HTML/CSS
|
|
|
|
|
|
Date :
2013-05-23 08:49:58 |
By :
pinkygirlz |
View :
3555 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อาจจะต้องใช้ Session เข้ามาช่วยด้วยครับ
Code (PHP)
<option value="7" <?if($_SESSION["xyz"]=="7"){?>selected<?}?>>777</option>
|
|
|
|
|
Date :
2013-05-23 09:40:16 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันมีส่วนของ javascript ในปุ่ม "เพิ่ม" ด้วยนี่ครับ
ซึ่งคงใช้ jquery ช่วยในการสร้าง แถว EQCode
และคิดว่าต้องใช้ cookie มากกว่านะครับในกรณีนี้
เพราะการคลิกปุ่ม back (ส่วนใหญ่) จะไม่ทำให้ฝั่ง server ทำงานอีกครั้ง
ดังนั้นการใช้ session จะไม่ช่วยอะไร เพราะ session อ่านค่าได้เฉพาะเวลาฝั่ง server ทำงาน
|
|
|
|
|
Date :
2013-05-23 16:32:19 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมเคยใช้ Cookies ของ JavaScript ครับ
เขียน JavaScript ใช้งาน Cookie แบบง่าย ๆ
|
|
|
|
|
Date :
2013-05-23 16:42:06 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code เก่า ๆ
Code
<form name="frmMain" method="post" action="Sample2.php">
Name
<input type="text" name="textfield">
<br>
Surname
<input type="text" name="textfield2">
<br>
Email
<input type="text" name="textfield3">
<br>
<input name="btnSubmit" type="submit" id="btnSubmit" value="Submit" onClick="clsControlObject('frmMain','write')">
<input name="btnClear" type="button" id="btnClear" value="Clear" onClick="clsControlObject('frmMain','clear')">
</form>
<script language="JavaScript">
function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
</script>
<script language="JavaScript">
function clsControlObject(objForm,flgMode)
{
var form, ele_text,ele_hidden,ele_textarea,ele_hidden,ele_select,ele_hidden, i, elm;
form = document.getElementById
? document.getElementById(objForm)
: document.forms[objForm];
var valtext,valtextarea,valselect,valhidden
valtext = "";
valtextarea = "";
valselect = "";
valhidden = ""
if (document.getElementsByTagName)
{
'******************* Input type=text *******************'
ele_text = form.getElementsByTagName('input');
for( i=0, elm; elm=ele_text.item(i++); )
{
if (elm.getAttribute('type') == "text")
{
if(flgMode=="write")
{
if(elm.value != "")
{
valtext=valtext.concat(elm.name+'||'+elm.value)+'(|)'
}
}
else if(flgMode=="clear")
{
elm.value = ""
deleteCookie('cktext')
}
else if(flgMode=="read")
{
if(getCookie('cktext') != null)
{
splitString=getCookie('cktext').split("(|)")
for(j=0;j<=parseInt(splitString.length-1);j++)
{
splitStringValue=splitString[j].split("||")
if(elm.name == splitStringValue[0])
{
if(splitStringValue[1] != "")
{
elm.value = splitStringValue[1];
}
break;
}
}
}
}
}
}
if(flgMode=="write")
{
if(valtext != "")
{
setCookie('cktext',valtext)
}
}
'***************** end Input type=text *****************'
'******************* Input type=hidden *******************'
ele_hidden = form.getElementsByTagName('input');
for( i=0, elm; elm=ele_hidden.item(i++); )
{
if (elm.getAttribute('type') == "hidden")
{
if(flgMode=="write")
{
if(elm.value != "")
{
valhidden=valhidden.concat(elm.name+'||'+elm.value)+'(|)'
}
}
else if(flgMode=="clear")
{
elm.value = ""
deleteCookie('ckhidden')
}
else if(flgMode=="read")
{
if(getCookie('ckhidden') != null)
{
splitString=getCookie('ckhidden').split("(|)")
for(j=0;j<=parseInt(splitString.length-1);j++)
{
splitStringValue=splitString[j].split("||")
if(elm.name == splitStringValue[0])
{
if(splitStringValue[1] != "")
{
elm.value = splitStringValue[1];
}
break;
}
}
}
}
}
}
if(flgMode=="write")
{
if(valhidden != "")
{
setCookie('ckhidden',valhidden)
}
}
'***************** end Input type=hidden *****************'
'******************* Input type=textarea *******************'
ele_text = form.getElementsByTagName('textarea');
for( i=0, elm; elm=ele_text.item(i++); )
{
if (elm.getAttribute('type') == "textarea")
{
if(flgMode=="write")
{
if(elm.value != "")
{
valtextarea=valtextarea.concat(elm.name+'||'+elm.value)+'(|)'
}
}
else if(flgMode=="clear")
{
elm.value = ""
deleteCookie('cktextarea')
}
else if(flgMode=="read")
{
if(getCookie('cktextarea') != null)
{
splitString=getCookie('cktextarea').split("(|)")
for(j=0;j<=parseInt(splitString.length-1);j++)
{
splitStringValue=splitString[j].split("||")
if(elm.name == splitStringValue[0])
{
if(splitStringValue[1] != "")
{
elm.value = splitStringValue[1];
}
break;
}
}
}
}
}
}
if(flgMode=="write")
{
if(valtextarea != "")
{
setCookie('cktextarea',valtextarea)
}
}
'***************** end Input type=textarea *****************'
'******************* Input type=select *******************'
ele_text = form.getElementsByTagName('select');
for( i=0, elm; elm=ele_text.item(i++); )
{
if (elm.getAttribute('type') == "select-one")
{
if(flgMode=="write")
{
if(elm.value != "")
{
valselect=valselect.concat(elm.name+'||'+elm.value)+'(|)'
}
}
else if(flgMode=="clear")
{
elm.value = ""
deleteCookie('ckselect')
}
else if(flgMode=="read")
{
if(getCookie('ckselect') != null)
{
splitString=getCookie('ckselect').split("(|)")
for(j=0;j<=parseInt(splitString.length-1);j++)
{
splitStringValue=splitString[j].split("||")
if(elm.name == splitStringValue[0])
{
if(splitStringValue[1] != "")
{
for (x=0;x<elm.length;x++)
{
if (elm.options[x].value==splitStringValue[1])
{
elm.options[x].selected = true;
break;
}
}
}
break;
}
}
}
}
}
}
if(flgMode=="write")
{
if(valselect != "")
{
setCookie('ckselect',valselect)
}
}
'***************** end Input type=select *****************'
}
}
clsControlObject('frmMain','read');
</script>
|
|
|
|
|
Date :
2013-05-23 16:46:39 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ jquery plugin น่าจะเหมาะกว่าสำหรับกรณีของจขกท.นะครับ
เพราะจขกท.ใช้ Bootstrap ซึ่งใช้ jquery เป็นฐานอยู่แล้ว
https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js
แต่ฝั่งที่จะ set cookie ในกรณีนี้ ควรจะเป็นฝั่งเซิร์ฟเวอร์ครับ
Code (PHP)
<?php
$Borrow_Id = $_POST['Borrow_Id'];
$B_Id = $_POST['B_Id'];
$Detail = $_POST['Detail'];
$Borrowdate = $_POST['Borrowdate'];
$Returndate = $_POST['Returndate'];
$Note = $_POST['Note'];
$product = $_POST['Product'];
$product_new =array_unique($product);
if(count($product_new)!=count($product))
{
echo "หมายเลข EQCode ที่เลือกมีรายการซ้ำกันอยู่กรุณากลับไปตรวจสอบด้วยนะคะ";
echo "<a href=\"javascript:history.back();\">กลับไปแก้ไขรายการ</a>";
exit();
}
// บันทึกไว้ตรงนี้ และไปอ่านเอาในส่วนของ javascript ในเพจก่อนหน้า
setcookie ('products', implode(',', $product));
$sql = "INSERT INTO stock(Borrow_Id,B_Id,Detail,Borrowdate,Returndate,Note) VALUES('$Borrow_Id','$B_Id','$Detail','$Borrowdate','$Returndate','$Note')";
//echo $sql;
if(mysql_query($sql))
{
echo "บันทึกข้อมูลเรียบร้อยแล้วคะ<br/>";
echo "<a href=\"borrow.php\">Back</a>";
} else {
echo "ไม่สามารถบันทึกข้อมูลได้กรุณาลองใหม่<br/>";
echo "<a href=\"javascript:history.back();\">Back</a>";
}
$result = count($product);
$i = 0;
while ( $i<$result ){
//echo $n;
$sql="INSERT INTO borrow_product(Borrow_Id,EQCode) VALUES('$Borrow_Id','$product[$i]')";
//echo $sql."<hr>";
mysql_query($sql);
$sql = "UPDATE product SET status='ไม่ว่าง' WHERE EQCode='$product[$i]'";
//echo $sql."<hr>";
mysql_query($sql);
$i++;
}
?>
<?php
$wantcount = true;
$counter_file = "lib/counter.txt";//สร้างไฟล์ใน notepad แล้วตั้งชื่อนี้ counter.txt แล้วpermission 777
if($wantcount){
if (file_exists($counter_file) and is_writeable($counter_file)){
$fp = fopen($counter_file,"r+") or die("Read File Error !");
$count = fread($fp, filesize($counter_file));
fclose($fp);
$fp = fopen($counter_file,"w+") or die("Write File Error !");
$count +=1;
$count =$count;
fputs($fp, $count);
fclose($fp);
}
}
?>
|
|
|
|
|
Date :
2013-05-23 16:55:56 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สอบถามเพิ่มเติมคะ คือว่าระบบเราถ้าไม่มีรหัสผู้ใช้บริการนี้ในระบบจะไม่สามารถยืมอุปกรณ์ได้ มันก้จะขึ้นว่าไม่สามารถทำรายการได้ แต่พอมาดูรายการอุปกรณ์มันอัพเดทสเตตัสว่ายืมไปแล้วอะคะทั้งๆที่มันทำรายการไม่ได้ เข้าใจปะคะ
|
|
|
|
|
Date :
2013-05-29 14:52:16 |
By :
pinkygirlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่แน่ใจว่าผมเข้าใจคุณ pinkygirlz ถูกมั้ยนะครับ ที่ผมเข้าใจคือ แค่ไม่ต้องการให้ EQCode (Serial number ของเครื่องคอมพิมเตอร์) ซ้ำกันใช่มั้ยครับ ผมเสนอว่า เขียน javascript ในการ check ข้องมูลของ EQCode ในแต่ละช่อง ถ้ามีช่องไหนช่องนึงที่ตรงกันก็ให้ โชว์ pop up บอกว่าซ้ำกันแล้วก็ไม่ต้องให้ page นั้นทำอะไร
ตัวอย่างเช่น
<script type="text/javascript">
function upload() {
if (($("#qe1").val()) == ($("#eq2").val()) {
alert("EQ Code ซ้ำกัน กรุณาลองใหม่อีกครั้ง");
} else{
$("#upload-form").submit();
}
}
</script>
<tr>
<th>EQ Code 1</th>
<td>
<select name ="eq1" id="eq1">
<option value ="11111">11111</option>
<option value ="22222">22222</option>
</select>
</td>
</tr>
<tr>
<th>EQ Code 2</th>
<td>
<select name ="eq2" id="eq2">
<option value ="11111">11111</option>
<option value ="22222">22222</option>
</select>
</td>
</tr>
ลองดูนะครับ
|
|
|
|
|
Date :
2013-05-29 16:31:04 |
By :
demiketcer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|