พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / ทำไงให้ข้อความแสดงเวลาเรากดเช็คบ็อก
newhandPHP
Tue 9 May 2006 10:29:13

มารบกวนอีกแล้วครับ ทำไงให้ เวลาเรา คลิ๊ก checkbox  แล้ว มีข้อความขึ้นมาอ่ะครับ

ขอแนวทางหน่อยนะครับขอบคุณมากๆครับ

สมมุติผมจะ ทำแบบตารารางนะ

 แสดงข้อวามจากเช็คบ็อก : แสดงข้อความที่เรากำหนด
 1ปุ่มเช็คบ็อก   2 ปุ่มเช็คบ็อก  3 ปุ่มเช็คบ็อก 

Administrator
Tue 9 May 2006 19:57:12
น่าจะหมายถึง Javascript ใช้ไหมครับ
ให้ทำการ Handle Event onclick ครับ เช่น

<script language="javascript" type="text/javascript">
function setMessage(id, mess){
    var obj = document.all?document.all[id]:document.getElementById(id);
    if(obj != null){
       obj.innerHTML = mess;
    }
}
</script>

แสดงข้อความจากเช็คบ็อก <span id="message"></span>


<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 1" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 1')">
<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 2" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 2')">
<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 3" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 3')">

ประมาณนี้ครับ
newhandPHP
Thu 11 May 2006 10:19:19
ขอบคุณมากๆครับเดี๋ยวผมลองไปทำดูนะครับผม
newhandPHP
Thu 11 May 2006 11:11:31

ตอนนี้ทำได้ละครับผม แต่อยากให้แสดง ข้อความทุกอันที่เราคลิ๊กแบบตารางครับ

ประมาณว่า กด ที่ข้อความนึง และให้แสดงต่อๆกันเรื่อยๆน่ะครับ ขอรบกวนหน่อยนะครับ

ขอบคุณคร๊าบบบบ

แสดงข้อความจากเช็คบ็อก : 1ปุ่มเช็คบ็อก   2 ปุ่มเช็คบ็อก  3 ปุ่มเช็คบ็อก 
                                          1ปุ่มเช็คบ็อก   2 ปุ่มเช็คบ็อก  3 ปุ่มเช็คบ็อก 

Administrator
Thu 11 May 2006 11:57:57
<script language="javascript" type="text/javascript">
function setMessage(id, mess){
    var obj = document.all?document.all[id]:document.getElementById(id);
    if(obj != null){
       obj.innerHTML = obj.innerHTML + mess;
    }
}
</script>

แสดงข้อความจากเช็คบ็อก <span id="message"></span>


<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 1" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 1')">
<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 2" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 2')">
<input type="checkbox" name="name" value="ปุ่มเช็คบ็อก 3" onclick="setMessage('message', 'ปุ่มเช็คบ็อก 3')">

เข้าใจว่าเมื่อมีการคลิ๊กอะไรให้โชว์ทั้งหมด ลองแบบนี้ดูครับ
newhandPHP
Thu 11 May 2006 12:15:43

 ทำได้นะครับผม แต่ เวลา คลิ๊กเช็คบ็อก อันเก่าแล้ว ข้อความก้อขึ้นต่อๆกันไปอ่ะครับ

 แสดงข้อความที่เช็คบ็อก :  1ปุ่มเช็คบ็อก2 ปุ่มเช็คบ็อก3 ปุ่มเช็คบ็อก1ปุ่มเช็คบ็อก2 ปุ่มเช็คบ็อก3 ปุ่มเช็คบ็อก 
  1ปุ่มเช็คบ็อก   2 ปุ่มเช็คบ็อก  3 ปุ่มเช็คบ็อก 

พอกดอันที่เรากดไปแล้ว ข้อความอันเก่าไม่หายอ่ะครับผม ต่อกันเรื่อยๆเลยอ่ะครับแง้

Administrator
Thu 11 May 2006 14:06:24
อืม ลองใช้วิธีนี้ครับ

<script language="javascript" type="text/javascript">
function setMessage(id, mess){
    var obj = document.all?document.all[id]:document.getElementById(id);
    if(obj != null){
       obj.innerHTML = (obj.innerHTML.indexOf(mess)?obj.innerHTMLSurprisedbj.innerHTML + mess);
    }
}
</script>

ใช้ indexOf() ในการค้นหาว่ามีคำนั้นๆหรือยัง
newhandPHP
Sat 13 May 2006 14:51:00
 ขอบคุณมากๆครับผม ขอกลับไปลองก่อนนะ ครับท่าน Admin
newhandPHP
Mon 15 May 2006 13:45:49
ใช้ indexOf() ในการค้นหาว่ามีคำนั้นๆหรือยัง <=== ใส่ไว้ตรงไหนครับผม รบกวน หน่อยนะครับ แง้
 
Administrator
Mon 15 May 2006 16:17:25
ผมใส่ไว้ในส่วนที่ hilight ไว้แล้วครับ
newhandPHP
Mon 15 May 2006 16:32:24
ลองแล้วครับผมไม่มีอะไรเกิดขึ้นครับ คลิ๊กที่เช็คบ็อกข้อความก้อไม่ขึ้นนะ ครับผม
Administrator
Mon 15 May 2006 16:36:49
<script language="javascript" type="text/javascript">
function setMessage(id, mess){
    var obj = document.all?document.all[id]:document.getElementById(id);
    if(obj != null){
       obj.innerHTML = (obj.innerHTML.indexOf(mess)?obj.innerHTML : obj.innerHTML + mess);
    }
}
</script>
newhandPHP
Mon 15 May 2006 17:12:17
 ลองแล้วครับผมไม่เกิดอาไรขึ้นเลยครับ แง้
Administrator
Mon 15 May 2006 18:03:30
หลังจากทำการ Debug ให้ พบว่าตกหล่นไปเยอะเลยครับ ผมได้ทำการแก้ไขให้เข้าใจง่ายกว่าเดิมตามนี้ครับ

<script language="javascript" type="text/javascript">
function setMessage(f, id){
    var obj = document.all?document.all[id]:document.getElementById(id);
    var message = "";
    for(i = 0; i < f.chkname.length; i++){
        if(f.chkname[i].checked){
            message += f.chkname[i].value;
        }
    }
    if(obj != null){
       obj.innerHTML = message;
    }
}
</script>

แสดงข้อความจากเช็คบ็อก <span id="message"></span>

<form>
<input type="checkbox" name="chkname" value="ปุ่มเช็คบ็อก 1" onclick="setMessage(this.form, 'message')">
<input type="checkbox" name="chkname" value="ปุ่มเช็คบ็อก 2" onclick="setMessage(this.form, 'message')">
<input type="checkbox" name="chkname" value="ปุ่มเช็คบ็อก 3" onclick="setMessage(this.form, 'message')">
</form>

จากโค๊ดผมได้ทำการเปลี่ยนเป็นการ loop ตามขนาดของ checkbox ซึ่งเมื่อมีการ checked หรือไม่ก็นะมีการจัดเรียงใหม่ รวมถึงแสดงเฉพาะส่วนที่เลือกเท่านั้น

ลองดูนะครับ
newhandPHP
Tue 16 May 2006 13:12:11

ผมลองทำตามแล้วนะครับ ยังไงก้อไม่แสดงอะไรขึ้นมาเลยน่ะครับ ขอโทษที่รบกวนคุณ admin น๊าครับผม

ผมใช้ code แรกที่คุณ admin ให้มาก้อได้ครับผม แง้ และขอบคุณนะครับที่คอยช่วยเหลือครับยังติดตามเว๊บของคุณเรื่อยๆนะครับ 

Administrator
Tue 16 May 2006 13:26:26
อืม ผมได้ทำการทดลองทั้ง IE และ Firefox แล้วสามารถใช้งานได้ปกตินะครับ
ลองทำการ Copy code ทั้งหมดทดลองดูนะครับ
newhandPHP
Tue 16 May 2006 13:59:35

ขอโทษครับผมลองกับไฟล์เอกสาร php และใช้ java แบบลิ้งค์เข้ามาน่ะครับ ไม่แสดงอะไรเลยครับผม

แต่ถ้าเอกสาร html ผมแสดงได้ปกติครับลองตะกี้อ่ะ

ข้างล่างเป็น code ที่ผมทำไว้อ่ะครับ ใช้ code แบบอันแรกที่คุณ admin ให้มาก้อแสดงได้ตามปกติครับมแต่พอใช้อันใหม่กลับไม่สามารถแสดงได้น่ะครับ ยังไงก้อไม่เป็นไรนะครับ ผมรู้สึกว่ารบกวนคุณ admin มามากๆอ่ะเกรงใจครับ ก็ขอบคุณที่ตอบคำถามเรื่อยๆน๊าครับ

<?php
    
include( "connectmember.php" );

mysql_select_db( $dbname, $c )
 or die ( "ไม่สามารถเลือกใช้งานฐานข้อมูล $dbname ได้" );
$routeid=$_GET["edit"];
$strSQL = "select * from routeing where routeid=$routeid";
$result = mysql_query ( $strSQL,$c );

   while ( $rs = mysql_fetch_array($result))

   {


    echo "<html>\n";
    echo "<head><title>.:::: EDIT Route Group :::.</title>\n";
 echo "<script language=\"javascript\"  type=\"text/javascript\" src=\"click_show_mess.js\"></script>\n";
 echo "</head>\n";
    echo "<body bgcolor=#336699 text=#ffffff>\n";
    echo "<center><h1> :: Edit Route Group :: </h1>\n";
    echo "<form method=POST action=\"edit_routegroup2.php\">\n";
 echo "<input type=\"hidden\" name=\"routeid\" value=\"$routeid\">\n";
 echo "<table align=\"center\" border=\"1\">\n";  
    echo "<tr><td><b>Group Indicator</b></td><td><b><span id=\"message\"></span></b></td></tr>";
 echo "<tr><td><b>Route indicator :</b></td>";
 echo "<td align=\"top\">";
  $subSQL = "select * from routeing where routetype='ADDRESS' ";
  $subresult = mysql_query( $subSQL,$c );
       
  echo "<table align=\"center\">\n";
  $col = 0;
  while ($srs = mysql_fetch_array($subresult))
    {
   $checkname = "check" . $srs[routeid];
   if ($col == 0)
    echo "<tr>";  

   $checksql="select * from routegroup where routeid=$rs[routeid] and subrouteid=$srs[routeid]";
   $checkresult=mysql_db_query($dbname,$checksql);
   $num=mysql_num_rows($checkresult);
   if($num > 0) {
    
    echo "<td><input  type=\"checkbox\" name=$checkname checked onclick=\"setMessage('message', '$srs[indicator]')\">$srs[indicator]</td>";
   } else
     {
    echo "<td><input  type=\"checkbox\" name=$checkname onclick=\"setMessage('message', '$srs[indicator]')\">$srs[indicator]</td>";
     }

     $col++;
   if ($col == 5)
    echo "</tr>";  
     $col = $col % 5;
    
    }
 echo "</table>";
 echo "</td></tr>\n";
 echo "<tr><td><b>Group Type :</b></td><td><select type=\"text\" name=routetype_edit>\n";
                                                               echo "<option value=>$rs[routetype]</option>\n";
                  echo "<option value=\"distribute\">distribute</option>\n";
                  echo "<option value=\"address\">address</option></select> </td></tr>\n";
 echo "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"เปลี่ยนข้อมูล\"><input type=\"reset\" value=\"ยกเลิก\"></td></tr></table>\n";
 echo "</form>"; 

 echo "<center>[<a href=\"show_route2.php\"><b>กลับหน้าเดิม</b></a> ]</center>\n";
    echo "</body></html>\n";

}
 
mysql_close();

?>
   

Administrator
Tue 16 May 2006 15:46:16
วิธีการ Debug code ผมแนะนำให้ view source ใน browser แล้วตรวจสอบว่ามี syntax ใดผิดพลาดหรือไม่ครับ และแนะนำให้ debug javascript ด้วย firefox ครับเนื่องจากใน firefox จะมี javascript error collection ทำให้เราสามารถทราบถึงจุดที่เราผิดพลาดได้ครับ เป็นวิธีที่ได้ผลดีที่สุดครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login