|
|
|
edit ไม่ผ่านค่ะช่วยหน่อยนะคะ มันไม่มี error แต่ไม่แก้ให้พอคลิกแก้ไขแล้วมันไม่ link ไปหน้า editor ที่แสดงผล |
|
|
|
|
|
|
|
มันไม่มี error แต่ไม่แก้ให้พอคลิกแก้ไขแล้วมันไม่ link ไปหน้า editok ที่แสดงผล ยังอยู่หน้า editform อยู่เลยแล้วก็ไม่มีข้อมูลอะไรใน textbox เลยค่ะ เป็นเพราะอะไรคะ
อันนี้หน้า editshow ค่ะ
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args+".location='"+args[i+1]+"'");
}
//-->
</script>
<?php
$dsn = "web_database"; // กำหนดชื่อ DSN
$user =""; // กำหนดชื่อล็อกอิน
$pass =""; // กำหนดรหัสผ่าน
$connect = odbc_connect($dsn, $user, $pass) or die("ติดต่อ DSN ไม่ได้"); // เริ่มติดต่อฐานข้อมูล
$sql = "select num,number1,name,unit,address from unit1 order by num ASC"; // กำหนดคำสั่ง SQL เพื่อแสดงข้อมูล
$exec = odbc_exec($connect, $sql); // เริ่มเอ็กซิคิวต์คำสั่ง SQL
$num_fields = odbc_num_fields($exec); // ตัวแปรจำนวนฟิลด์
echo"<Table border=1><Tr bgcolor=\"#336600\"> <Td><CENTER><B><font color=\"#FFFFFF\">ลำดับที่</font></B></CENTER></Td><Td><CENTER><B><font color=\"#FFFFFF\">หมายเลข</font></B></CENTER></Td> <Td><CENTER><b><font color=\"#FFFFFF\">ชื่อสิ่งอุปกรณ์</font></b></CENTER></Td> <Td><CENTER><b><font color=\"#FFFFFF\">หน่วยนับ</font></b></CENTER></Td> <Td><CENTER><b><font color=\"#FFFFFF\">รายละเอียด</font></b></CENTER></Td><Td><CENTER><b><font color=\"#FFFFFF\">แก้ไข</font></b></CENTER></Td></Tr>"; // แสดงส่วนหัวตาราง
// end For
$N=1;
While (odbc_fetch_row($exec, $N)) // ดึงข้อมูลครั้งละ 1 เรกคอร์ด
{
$num = odbc_result($exec, "num");
$number = odbc_result($exec, "number1");
$name = odbc_result($exec, "name");
$unit = odbc_result($exec, "unit");
$address = odbc_result($exec, "address");
echo "<Tr><Td>$num</Td> <Td>$number</Td> <Td>$name</Td> <Td>$unit</Td> <Td><CENTER><input type=\"button\" name=\"Button\" value=\"ดูข้อมูล\" onClick=\"MM_goToURL('parent','$address');return document.MM_returnValue\"></CENTER> </Td><Td><CENTER><A Href=\"editform.php?number1=$number\">แก้ไข</A></CENTER> </Td></Tr>"; //แสดงข้อมูลแต่ละฟิลด์
$N++;
}
//end While
echo "</Table>";
$sql_count = "select count (*) from unit1"; // กำหนดคำสั่ง SQL เพื่อนับข้อมูล
$exec = odbc_exec($connect, $sql_count); // เริ่มเอ็กซิคิวต์คำสั่ง SQL
$num_rows = odbc_result($exec, 1); // ตัวแปรจำนวนเรกคอร์ด
odbc_close($connect); // ปิดการเชื่อมต่อ
?>
</div>
<div id="Layer14" style="position:absolute; left:288px; top:254px; width:661px; height:25px; z-index:16"><?echo "<Br><A Href=\"editsearch.php\"><strong>ค้นหาเพื่อแก้ไขข้อมูล</strong></A><p>"; // เครื่องหมาย / หน้า " ทำให้ไม่เกิด error เมื่อรัน
?></div>
<p> </p>
อันนี้หน้า editform ค่ะ
<?php
$dsn = "web_database"; // กำหนดชื่อ DSN
$user =""; // กำหนดชื่อล็อกอิน
$pass =""; // กำหนดรหัสผ่าน
$connect = odbc_connect($dsn, $user, $pass) or die("ติดต่อ DSN ไม่ได้"); // เริ่มติดต่อฐานข้อมูล
$number1=$_REQUEST['number1'];
$sql = "select * from unit1 where number1='$number1'"; // กำหนดคำสั่ง SQL เพื่อแสดงข้อมูล
$exec = odbc_exec($connect, $sql) or die("ไม่สามารถแก้ไขข้อมูลได้"); // เริ่มเอ็กซิคิวต์คำสั่ง SQL
$num = odbc_result($exec, "num");
$number = odbc_result($exec, "number1");
$name = odbc_result($exec, "name");
$unit = odbc_result($exec, "unit");
$address = odbc_result($exec, "address");
echo "<B><Font size=4 color=black><h3><center>รายการคุณลักษณะเฉพาะสิ่งอุปกรณ์ ลำดับที่<Font size=4 color=red> ".$num."</Font></center></h3></Font></B>";
echo "<Font size=4>";
echo "<Form action=\"editok.php\" method=\"post\">"; // ส่งค่าไปอัปเดท
echo "<Input type=\"hidden\" name=\"number1\" Size=\"10\" value=\"$number1\">";
echo "<Table bgcolor=''>";
echo "<Tr><Td>หมายเลข</Td> <Td><Input type=\"text\" name=\"number1\" Size=\"30\" value=\"$number\"></Td></Tr>";
echo "<Tr><Td>ชื่อสิ่งอุปกรณ์</Td> <Td><Input type=\"text\" name=\"name\" Size=\"45\" value=\"$name\"></Td></Tr>";
echo "<Tr><Td>หน่วยนับ</Td> <Td><Input type=\"text\" name=\"unit\" Size=\"30\" value=\"$unit\"> </Td></Tr>";
echo "<Tr><Td>รายละเอียด</Td> <Td><Input type=\"File\" name=\"File\" Size=\"30\"</Td></Tr>";
echo "</Table>";
echo "<Br><center><Input type=\"Submit\" value=\"แก้ไขข้อมูล\"</center>";
echo "</Form>";
echo "</Font>";
odbc_close($connect); // ปิดการเชื่อมต่อ
?>
แล้วอันนี้ก็ editok ค่ะ
<?php
$dsn = "web_database"; // กำหนดชื่อ DSN
$user =""; // กำหนดชื่อล็อกอิน
$pass =""; // กำหนดรหัสผ่าน
$connect = odbc_connect($dsn, $user, $pass) or die("ติดต่อ DSN ไม่ได้"); // เริ่มติดต่อฐานข้อมูล
$number=$_REQUEST['number1'];
$sql = "update unit1 set number1='$number', name='$name', unit='$unit', address='$address' where number1='$number1'"; // กำหนดคำสั่ง SQL เพื่อแสดงข้อมูล
odbc_exec($connect, $sql); // เริ่มเอ็กซิคิวต์คำสั่ง SQL
echo "<Font Size=4><B>แก้ไขข้อมูลเรียบร้อยแล้วดังนี้</B><Br>";
echo "<Font color=blue> ลำดับที่ : </Font><Font color=red>$num<Br></Font>";
echo "<Font color=blue> หมายเลข : </Font><Font color=red>$number<Br></Font>";
echo "<Font color=blue> ชื่อสิ่งอุปกรณ์ : </Font><Font color=red>$name<Br></Font>";
echo "<Font color=blue> หน่วยนับ : </Font><Font color=red>$unit<Br></Font>";
echo "<Font color=blue> รายละเอียด : </Font><Font color=red>$address<Br></Font>";
echo "<Br><A Href=\"editshow.php\"> ดูผลการเปลี่ยนแปลง/แก้ไขอีก</A>"; // เครื่องหมาย / หน้า " ทำให้ไม่เกิด error เมื่อรัน
?>
ช่วยดูให้หน่อยนะคะว่าผิดตรงไหนแล้วจะต้องแก้ยังไงคะ
ขอบคุณค่ะ
Tag : - - - -
|
|
|
|
|
|
Date :
12 ต.ค. 2549 16:29:14 |
By :
popo |
View :
1908 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "<Input type=\"hidden\" name=\"number1\" Size=\"10\" value=\"$number1\">";
echo "<Table bgcolor=''>";
echo "<Tr><Td>หมายเลข</Td> <Td><Input type=\"text\" name=\"number1\" Size=\"30\" value=\"$number\"></Td></Tr>";
จากบรรทัดที่เห็น มี text hidden name=number1 และ text name=number1 เหมือนกัน ซึ่ง ชื่อตัวแปรมันซ้ำกันน่ะครับ
ตามที่ดู ตัว hidden จะเป็นตัวอ้างเพื่อจะทำการ แก้ไข เรคอร์ดนั้น แต่ text อีกตัว เอาไว้แก้ไขเป็นอะไร ซึ่ง คุณใช้ ชื่อเดียวกัน มันทำให้ ค่าตัวที่จะอ้างในการแก้ไข เปลี่ยนแปลงไปน่ะครับ เพราะฉะนั้น มันก็ไม่สามารถที่จะแก้ไขเรคอร์ดที่เราต้องการได้ครับ
มีไรปรึกษาผมได้นะครับ
MSN : [email protected]
|
|
|
|
|
Date :
12 ต.ค. 2549 17:41:54 |
By :
ผู้ไม่ประสงค์นาม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
number1= ตัวนี้เป็นแพเมรี่คีย์ครับ
name =
unit
address
ถ้าใช่ก้แปลกน่ะครับ เพราะ คีย์หลักต้องมานั่งแก้ไขเองซึ่งอาจจะทำให้ซ้ำได้เค้าไม่ทำกัน เพราะถ้าซ้ำมันก้ไม่เออเลอร์ครับแต่ไม่ทำงานตามที่เราต้องการ อย่างเช่นไม่อัพเดทให้ครับ
|
|
|
|
|
Date :
13 ต.ค. 2549 00:13:22 |
By :
นาคุ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|