[PHP] รบกวนด้วยค่ะ อยากให้ checkbox check ตามเงื่อนไข ที่กำหนดค่ะ
Code (PHP)
// บันทัดที่ 115-116 แก้เป็น
$Reff = false;
foreach( $assay as $line_num=>$line)
Code (PHP)
// 182 - 218 แก้เป็น
?>
<tr bgcolor="#<?=($Reff=!$Reff? 'DFFFFF' : 'FFDFFF' )?>" >
<td align=center ><input type=checkbox name="Line[<?=$line_num?>]" value="<?=$line_num?>" <?=($Seami=='c4'? 'checked' : '')?> ></td>
<td align=center ><font size=2><?=$Seami?></font></td>
<td align=right><font size=2><?=sprintf("%8.2f",$DepTop)?></font></td>
<td align=right><font size=2><?=sprintf("%8.2f",$DepBot)?></font></td>
<td align=right><font size=2 color=blue><?=sprintf("%10.2f",$MSLTop)?></font></td>
<td align=right><font size=2 color=blue><?=sprintf("%10.2f",$MSLBot)?></font></td>
<td align=right><font size=2><?=sprintf("%8.2f",$CTK)?></font></td>
<td align=right><font size=2><?=$GCVAR?></font></td>
<td align=right><font size=2><?=$AHAR?></font></td>
<td align=right><font size=2><?=$TMAR?></font></td>
<td align=right><font size=2><?=$TSAR?></font></td>
<td align=right><font size=2><?=$RDIS?></font></td>
</tr>
<?php
ปล. ลองตรวจสอบว่า สามารถใช้คำสั่ง <?= $xxxx?>
ถ้าใช้ไม่ได้ ให้ใช้ <?php echo $xxxxx; ?>
Date :
2015-04-07 20:19:40
By :
Chaidhanan
ยังไม่ได้เลยค่ะ มันขึ้น error อะค่ะ :(
Date :
2015-04-08 08:52:57
By :
sammam
Error อะไรครับ
Date :
2015-04-08 09:01:35
By :
mr.win
โอ้ คุณเขียน เปิดปิด Tags ของ PHP ใช้ร่วมกันสลับหลายตัวเลยครับ ลองดูตัวอย่างใน #1 ครับ
Date :
2015-04-08 10:03:51
By :
mr.win
ทั้งหมดที่ เขียนมา แทนที่ ด้วยโค๊ดที่ผมบอก น่ะครับ
โค๊ดที่ จขกทเขียน เยิ่นเย้อครับ มากเกินไป แค่เปลี่ยน สี bgcolor เท่านั้น
แต่เขียน มาซะ 2 tr ทั้งหมด ผมเลยย่อ ให้เหลือ เท่านั้น
และเพิ่มโค๊ด checkbox ว่า จะให้ ติกเช็คบอก หรือไม่
Code
<tr bgcolor="#<?=($Reff=!$Reff? 'DFFFFF' : 'FFDFFF' )?> " >
<td align=center ><input type=checkbox name="Line[<?=$line_num?>]" value="<?=$line_num?>"
<?=($Seami=='c4'? 'checked' : '')?> ></td>
สีแดงคือส่วนเลือกสี background
สีน้ำตาล คือส่วน ให้แสดง ติ๊กหรือไม่ติีก ที่ checkbox
ส่วนข้างล่างคือส่วนที่ เอาออก แล้วแทนที่ด้วย โค๊ดที่ผมทำไว้ให้ครับ
182.
183.if($Reff > 0)
184.{
185.echo "<tr bgcolor='#DFFFFF'>"
186.."<td align=center><input type=checkbox name=Line[".$line_num."] value=".$line_num."></td>"
187.."<td align=\"center\"><font size=2>".$Seami."</font></td>"
188.."<td align=right><font size=2>"; printf("%8.2f",$DepTop); echo "</font></td>"
189.."<td align=right><font size=2>"; printf("%8.2f",$DepBot); echo "</font></td>"
190.."<td align=right><font size=2 color=blue>"; printf("%10.2f",$MSLTop); echo "</font></td>"
191.."<td align=right><font size=2 color=blue>"; printf("%10.2f",$MSLBot); echo "</font></td>"
192.."<td align=right><font size=2>"; printf("%8.2f",$CTK); echo "</font></td>"
193.."<td align=right><font size=2>".$GCVAR."</font></td>"
194.."<td align=right><font size=2>".$AHAR."</font></td>"
195.."<td align=right><font size=2>".$TMAR."</font></td>"
196.."<td align=right><font size=2>".$TSAR."</font></td>"
197.."<td align=right><font size=2>".$RDIS."</font></td>"
198.."</tr>\n" ;
199.$Reff = 0 ;
200.}
201.else
202.{
203.echo "<tr bgcolor='#FFDFFF'>"
204.."<td align=center><input type=checkbox name=Line[".$line_num."] value=".$line_num."></td>"
205.."<td align=\"center\"><font size=2>".$Seami."</font></td>"
206.."<td align=right><font size=2>"; printf("%8.2f",$DepTop); echo "</font></td>"
207.."<td align=right><font size=2>"; printf("%8.2f",$DepBot); echo "</font></td>"
208.."<td align=right><font size=2 color=blue>"; printf("%10.2f",$MSLTop); echo "</font></td>"
209.."<td align=right><font size=2 color=blue>"; printf("%10.2f",$MSLBot); echo "</font></td>"
210.."<td align=right><font size=2>"; printf("%8.2f",$CTK); echo "</font></td>"
211.."<td align=right><font size=2>".$GCVAR."</font></td>"
212.."<td align=right><font size=2>".$AHAR."</font></td>"
213.."<td align=right><font size=2>".$TMAR."</font></td>"
214.."<td align=right><font size=2>".$TSAR."</font></td>"
215.."<td align=right><font size=2>".$RDIS."</font></td>"
216.."</tr>\n" ;
217.$Reff = 1 ;
218.}
Date :
2015-04-08 10:07:45
By :
Chaidhanan
รบกวนดูให้อีกทีค่ะ แก้ไขตามที่พี่ Chaidhanan บอกแล้ว ยังเป็นเหมือนเดิม ค่ะ :(
ตอนนี้มั error เพิ่ม มา 2 จุดค่ะ รบกวนช่วย ดูให้ทีค่ะ
ประวัติการแก้ไข 2015-04-09 13:40:23
Date :
2015-04-08 10:59:57
By :
sammam
บันทัดที่ 185 ใส่ ?>
บันทัดที่ 200 ใส่ <?php
คือในตัวอย่าง เอามาไม่หมดครับ ทำให้โครงสร้าง ไฟล์มันเสีย
พอใส่ 185 และ 200 ข่างล่างก็ถูก ไวย์กรณ์ โครงสร้างเองครับ
Date :
2015-04-08 11:26:49
By :
Chaidhanan
รูปที่ 1 เหมือนว่า tr อยู่นอก echo ลองไล่ดีดีครับว่า
- จะใช้ php echo ค่า html หรือ
- จะวาง html โดยไม่ใช้ echo ของ php
รูปที่ 2
<b>
<font size="2px">
Data in select windows <font style="color:#F00; "><?php echo "sssssssss"; ?></font> holes
</font>
</b>
ปล.เขียนเปิด tag php แบบเต็มเถอะครับ <?php ?> ผมเห็นแบบย่อแล้วปวดใจ T^T
ประวัติการแก้ไข 2015-04-08 11:32:08 2015-04-08 11:34:27
Date :
2015-04-08 11:31:23
By :
apisitp
ต้องขอโทษทุกท่านด้วยค่ะ คำถามของหนูอาจจะยังไม่ ชัดเจน
อยากให้ ผลลัพธ์ เป็นแบบรูป ค่ะ เวลาทำการเลือก check C4 ตรงข้างบน แล้วมันก็จะเลือก ช่อง seam name ที่มี C4 เหมือนกันอะค่ะ
พอเป็นไปได้ไหมค่ะ
ขอบคุณทุก คำตอบ มากๆเลย จร้าา
ประวัติการแก้ไข 2015-04-09 13:40:40
Date :
2015-04-08 12:40:38
By :
sammam
ใส่คลาสให้ checkbox หน่อยครับ เพื่อสดวกในการ เรียกใช้
<input type=checkbox class="td_chk" name="Line[<?=$line_num?>]" value="<?=$line_num?>" <?=($Seami=='c4'? 'checked' : '')?> >
และที่ปุ่ม checkbox Check c4 เพิ่มสีน้ำตาล
<input type=checkbox onclick="ClickCheckAll( this.checked )" >Check c4
Code (JavaScript)
function ClickCheckAll(vol){
var i=0;
var chk_ob=document.getElementsByClassName('td_chk');
var ln=chk_ob.length;
for( i; i<ln;i++){
if( chk_ob.item(i).value=='c4') chk_ob.item(i).checked=vol;
}
}
ประวัติการแก้ไข 2015-04-08 13:07:00 2015-04-08 13:07:23
Date :
2015-04-08 13:06:25
By :
Chaidhanan
ช่วยดูให้หน่อยค่ะ syntax error ค่ะ
ประวัติการแก้ไข 2015-04-09 13:40:57
Date :
2015-04-09 08:45:13
By :
sammam
เป็น javascript ครับ ให้เอาไปไว้ ในส่วนของ html ระหว่าง บันทัดที่ 3 และ 4
โดยเพิ่ม tag script เข้าไปด้วยครับ
Code (JavaScript)
<script>
function ClickCheckAll(vol){
var i=0;
var chk_ob=document.getElementsByClassName('td_chk');
var ln=chk_ob.length;
for( i; i<ln;i++){
if( chk_ob.item(i).value=='c4') chk_ob.item(i).checked=vol;
}
}
</script>
ปล. น่าจะศึกษา HTML vs Javascript เพิ่มเติมต่างหากก่อนนะครับ
ศึกษากระบวนการคำสั่ง ส่วนของ client แยกออกไปให้ชัดเจนก่อน
ประวัติการแก้ไข 2015-04-09 09:03:14
Date :
2015-04-09 09:01:05
By :
Chaidhanan
ตอนนี้ สามารถ รันได้แล้วค่ะ แต่ เวลา ติก ที่ check c4 ยังไม่ทำการ check ตามเงื่อนไขให้ค่ะ T^T
รบกวนพี่ๆ ช่วยดูให้หน่อยค่ะ
ประวัติการแก้ไข 2015-04-09 13:41:15
Date :
2015-04-09 10:04:07
By :
sammam
อันดับแรกอ่าน comment เก่าที่ผมบอก ให้เข้าใจ ก่อนที่จะแก้ไขครับ
ผมบอกวิธีไว้หมดแล้วครับ
Date :
2015-04-09 10:20:55
By :
Chaidhanan
ผลลัพธ์ ยังไม่ได้เหมือนเดิมค่ะ C4 ไม่ติกเหมือนเดิมอะค่ะ
ประวัติการแก้ไข 2015-04-15 21:29:27
Date :
2015-04-09 11:08:02
By :
sammam
ลองดูโค๊ดข้างล่างเป็นตัวอย่างนะครับ คือผมไม่มี database มาทดลอง
เคยเขียนตอบ คนอื่นไว้ หาไม่เจอ เลยต้อง post ใหม่
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<script language="JavaScript">
function ClickCheckAll(vol){
var i=0;
//var chk_ob=document.getElementsByName('chkDel[]');
var chk_ob=document.getElementsByClassName('td_chk');
var ln=chk_ob.length;
for( i; i<ln;i++) chk_ob.item(i).checked=vol;
}
}
</script>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
<th width="30"> <div align="center">
<input name="CheckAll" type="checkbox" id="CheckAll" value="Y" onClick="ClickCheckAll(this.checked);">
</div></th>
</tr>
<tr>
<td><div align="center">1</div></td>
<td>Name1</td>
<td>Email1</td>
<td><div align="center">CountryCode1</div></td>
<td align="right">Budget1</td>
<td align="right">Used1</td>
<td align="center"><input type="checkbox" class="td_chk" name="chkDel[]" id="chkDel1" value="1"></td>
</tr>
<tr>
<td><div align="center">2</div></td>
<td>Name2</td>
<td>Email2</td>
<td><div align="center">CountryCode2</div></td>
<td align="right">Budget2</td>
<td align="right">Used2</td>
<td align="center"><input type="checkbox" class="td_chk" name="chkDel[]" id="chkDel2" value="2"></td>
</tr>
</table>
</body>
</html>
Date :
2015-04-09 11:30:23
By :
Chaidhanan
อ้อผิดตรงนี้ครับ $line_num คงไม่มีค่า c4 แน่ๆเลย
210.<tr bgcolor="#<?=($Reff=!$Reff? 'DFFFFF' : 'FFDFFF' )?>" >
211.<td align=center ><input type=checkbox class="td_chk" name="Line[<?=$line_num?>]" value="<?=$line_num?>" <?=($Seami=='c4'? 'checked' : '')?> ></td>
ให้แก้เป็น
210.<tr bgcolor="#<?=($Reff=!$Reff? 'DFFFFF' : 'FFDFFF' )?>" >
211.<td align=center ><input type=checkbox class="<?=($Seami=='c4'? 'td_chk' : '')?>" name="Line[<?=$line_num?>]" value="<?=$line_num?>" <?=($Seami=='c4'? 'checked' : '')?> ></td>
อันนี้มีข้อจำกัด คือ เฉพาะ $Seami = 'c4' เท่านั้นนะครับ
ถ้าเป็นรูปแบบอื่นต้องไปแก้ function ClickCheckAll() ด้วย
================================================================
แบบเพื่อเลือก อย่างอื่น
210.<tr bgcolor="#<?=($Reff=!$Reff? 'DFFFFF' : 'FFDFFF' )?>" >
211.<td align=center ><input type=checkbox class="<?=$Seami?>" name="Line[<?=$line_num?>]" value="<?=$line_num?>" <?=($Seami=='c4'? 'checked' : '')?> ></td>
ใน ฟังก์ชั่น ClickCheckAll()
var chk_op = document.getElementByClassName('td_chk')
แก้เป็น
var chk_op = document.getElementByClassName( ตัวแปรที่ต้องการค้นหา (ตอนนี้ใส่ 'c4' ไปก่อน) )
ประวัติการแก้ไข 2015-04-09 13:31:03 2015-04-09 13:31:49
Date :
2015-04-09 13:30:25
By :
Chaidhanan
ยังไม่ได้เหมือนเดิมเคยค่ะ อาจารย์ ขอบคุณมากเลยค่ะ T^T
Date :
2015-04-09 13:53:41
By :
sammam
Code (Java)
<script language="javascript">
function chk_all(){
var x=document.getElementsByTagName("input");
for(i=0;i<=x.length;i++){
if(x[i].type=="checkbox"){
x[i].checked=true;
}
}
}
function unchk_all(){
var x=document.getElementsByTagName("input");
for(i=0;i<=x.length;i++){
if(x[i].type=="checkbox"){
x[i].checked=false;
}
}
}
</script>
พอใช้ script ตัวนี้ ทำเป็น check all มันขึ้น คับ อยากใส่เงื่อนไข ตรง script ได้ไหมคับ ให้ check ที่ $Seami เท่ากับ C4
Date :
2015-04-09 14:14:27
By :
sammam
<input type=checkbox class="td_chk" name="Line[<?=$line_num?>]" value="<?=$line_num?>" >
จากโค๊ดข้างบนเราจะรู้ได้ยังไงว่า checkbox ตัวไหน มี $Seami = 'c4'; บอกได้ไหมครับ
เมื่อบอกไม่ได้เราก็ต้องเพิ่ม attribute เข้าไป ว่า อันนี้นะ เป็น c4
ที่นี้การกำหนดให้รู้ว่าอันไหนใช่ ก็มีอยู่หลายทาง
1 กำหนดชื่อ คลาส class="c4"
2 กำหนด attribute ใหม่ data-seami="c4"
เมื่อเราเลือกว่าจะใช้ class เราก็ต้อง ค้นหาจาก class
Code (JavaScript)
function ClickCheckAll(vol){
var i=0;
var chk_ob=document.getElementsByClassName('c4');
var ln=chk_ob.length;
for( i; i<ln;i++) chk_ob.item(i).checked=vol;
}
แต่ถ้าเรากำหนดจาก attribute
Code (JavaScript)
function ClickCheckAll(vol){
var i=0;
var chk_ob=document.getElementsByTagName('input');
var ln=chk_ob.length;
for( i; i<ln;i++) {
if( chk_ob.item(i).getAttribute('data-seami')=='c4'){
chk_ob.item(i).checked=vol;
}
}
}
ปล.น่าจะเอาโค๊ดจาก คห 17 มาทดลองดูก่อนนะครับ ไม่ต้องแก้อะไร เซฟเป็น ชื่ออะไรก้ได้ ทดลองเรียกดู
แล้วดูผลลัพธ์ที่เกิดขึ้น แล้ววิเคราะห์โค๊ดดูครับ
Date :
2015-04-09 15:41:28
By :
Chaidhanan
ตอนนี้ check ขึ้นแล้วค่ะ เริ่มมีความหวัง แต่มัน check ทุกอันเลย รบกวนช่วยดูว่าแก้ตรงไหนทีค่ะ
ประวัติการแก้ไข 2015-04-15 21:30:03
Date :
2015-04-09 17:03:36
By :
sammam
class='c4'
แก้เป็น
class="<?=$Seami?>"
ไปกำหนดอย่างนั้น มันก็ขึ้นทุกอันแหล่ะครับ ต้องใช้ ตัวแปรครับ
Date :
2015-04-09 17:11:51
By :
Chaidhanan
ทำได้เรียบร้อยแล้ว ค่ะ ^ ^ ขอบพระคุณอาจารย์มากค่ะ
Date :
2015-04-10 16:44:46
By :
sammam
Load balance : Server 05