ถามเกี่ยวกับการเขียนโค้ดพวกเมนูครับ

เริ่มโดย tamiyalagu, 04 มกราคม 2010, 11:06:55

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

tamiyalagu

แบบมีเมนูอยู่ ส่วนหน้าที่กำลังทำงานอยู่ ในส่วนของเมนูนั้นก็จะให้แสดงเป็นอีกแบบ  โดยจะใส่ class เพิ่มไปเป็น current
พอเข้าใจหรือเปล่าครับ ก็จะเขียนโค้ดออกมาเป็นแบบนี้

<ul>
<li <?if($pagename=="index") echo "class='current'"?>>Home</li>
<li <?if($pagename=="news") echo "class='current'"?>>News</li>
<li <?if($pagename=="webboard") echo "class='current'"?>>Webboard</li>
<li <?if($pagename=="download") echo "class='current'"?>>Download</li>
<li <?if($pagename=="link") echo "class='current'"?>>Link</li>
<li <?if($pagename=="game") echo "class='current'"?>>Game</li>
</ul>

ซึ่งลักษณะแบบนี้ถูกใช้ในหลายกรณี  อย่างเรื่อง การกำหนดค่าเริ่มต้นของ radio พวกนี้ ก็ต้องเช็คแบบนี้เหมือนกัน

$pet = $result[pet]; // รับค่าจาก database มาเป็นค่าที่ผู้ใช้เคยเลือกไว้
<input type='radio' name='pet' value='dog' <?if($pet=="dog") echo "selected='selected'"?> />Dog<br />
<input type='radio' name='pet' value='cat' <?if($pet=="cat") echo "selected='selected'"?> />Dog<br />
<input type='radio' name='pet' value='bird' <?if($pet=="bird") echo "selected='selected'"?> />Bird<br />
<input type='radio' name='pet' value='hippo' <?if($pet=="hippo") echo "selected='selected'"?> />Hippo<br />
<input type='radio' name='pet' value='pig' <?if($pet=="pig") echo "selected='selected'"?> />Pig<br />

ที่อยากถามคือมันมีวิธีเขียนที่ดีกว่านี้หรือเปล่าครับ ใส่ if ไปทีละตัวแบบนี้มันดูรกๆยังไงไม่รู้

DownsTream

#1

<ul>
<?php
$pagename 'news';
$curr = array('index''news''webboard''download''link''game');
$menu = array('Home''News''Webboard''Download''Link''Game');

foreach ($curr as $key=>$val) {
$class = ($pagename == $val) ? ' class="current"' ''
echo '<li'.$class.'>'.$menu[$key].'</li>';
}
?>

</ul>



ประยุกต์ใช้ได้กับทุกงานที่ต้องการสร้างอะไรสักอย่างที่ซ้ำๆ กัน


</ul>
<?php
$pet 'dog';
$curr = array('dog''cat''bird''hippo''pig');
$anim = array('Dog''Cat''Bird''Hippo''Pig');

foreach ($curr as $key=>$val) {
$selected = ($pet == $val) ? ' checked="checked"' ''
echo '<input type="radio" name="pet" value="'.$val.'"'.$selected.' />'.$anim[$key].'</li><br />';
}
?>

</ul>


tamiyalagu


Rapid-Developer

แนะนำอีกอันครับสำหรับการลดรูป IF else

<li class="<? ($pagename=="index")  ?  'current' : 'non-current' ?>">Home</li>

--