請問大大們!這支程式有沒有比較簡單的寫法呢?

edited 十月 2013 in 進階PHP討論
----請問大大們這支程式可以簡化嗎?
小弟一早上想了又想不知要怎簡化這支程式!或者大大們有更好的辦法也可以達到相同的較果----
<form name="form1" method="post" action="">
<?
if ($_GET==1){
echo "<input name=state type=radio checked value=1
onClick=location.href='Untitled-2.php?state='+form1.state.value>";
echo "<input name=state1 type=radio value=1
onClick=location.href='Untitled-2.php?state1='+form1.state1.value>";
echo "<input type=checkbox name=checkbox value=checkbox disabled >";
echo "<input type=checkbox name=checkbox value=checkbox disabled >";}
elseif($_GET==1){
echo "<input name=state type=radio value=1
onClick=location.href='Untitled-2.php?state='+form1.state.value>";
echo "<input name=state1 type=radio checked value=1
onClick=location.href='Untitled-2.php?state1='+form1.state1.value>";
echo "<input type=checkbox name=checkbox value=checkbox >";
echo "<input type=checkbox name=checkbox value=checkbox >"; }
else{
echo "<input name=state type=radio value=1 checked
onClick=location.href='Untitled-2.php?state='+form1.state.value>" ;
echo "<input name=state1 type=radio value=1
onClick=location.href='Untitled-2.php?state1='+form1.state1.value>" ;
echo "<input type=checkbox name=checkbox value=checkbox disabled >";
echo "<input type=checkbox name=checkbox value=checkbox disabled >";}
?>
</form>
這支程式一開始run時會產生兩個radio及兩個checkbox,預設值為第一個radio是check及兩個checkbox是disabled,當按下第二個radio時,第一個radio就不為checked及兩個checkbox也不為disabled!
簡單來說就是用兩個radio來控制checkbox啦!

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=850

評論

  • edited 九月 2005
    請問大大們!為什麼我把php的指令穿插在這支程式裏面會出錯呢?
    <form name="form1" method="post" action="">
    <?php
    if ($_GET==1){?>
    <input name=state type=radio checked value=1
    onClick="location.href='Untitled-2.php?state='+form1.state.value">
    <input name=state1 type=radio value=1
    onClick="location.href='Untitled-2.php?state1='+form1.state1.value">
    <input type=checkbox name=checkbox value=checkbox disabled >
    <input type=checkbox name=checkbox value=checkbox disabled ><?php
    elseif($_GET==1){?>
    <input name=state type=radio value=1
    onClick="location.href='Untitled-2.php?state='+form1.state.value">
    <input name=state1 type=radio checked value=1
    onClick="location.href='Untitled-2.php?state1='+form1.state1.value">
    <input type=checkbox name=checkbox value=checkbox >
    <input type=checkbox name=checkbox value=checkbox ><? }}
    else{?>
    <input name=state type=radio value=1 checked>
    <input name=state1 type=radio value=1
    onClick="location.href='Untitled-2.php?state1='+form1.state1.value">
    <input type=checkbox name=checkbox value=checkbox disabled >
    <input type=checkbox name=checkbox value=checkbox disabled ><?
    }?></form>
    是不是我穿插的方法錯了啊?
  • edited 九月 2005
    =_="""

    <input type=checkbox name=checkbox value=checkbox disabled ><?php
    elseif($_GET==1){?>

    這邊的 elseif 前面少了 if { 的 結束 "}"
    =_="""

    還有,
    針對你的問題,
    可以使用 innerHTML 的方式去作,
    這是 Javascript 的方法,
    可以請 sam 網友幫你寫一下
    就是把 tag 寫在 javascript 裡面
    用 innerHTML 的方式,
    當觸動 onlick 事件的時候去呼叫 javascript 的 function
    細節現在沒有時間
    晚點看sam 網友有沒有幫你
    沒有的話再幫你弄
    不然又怕匆忙之際會放砲
    以上
  • edited 九月 2005
    @"

    我只能提供php的寫法

    <form name="form1" method="post" action="">
    <input name="state" type=radio"<?php echo $_GET == 1 ? "" : " checked"; ?> value=1 onClick=location.href='Untitled-2.php?state='+form1.state.value>";
    echo "<input name="state1" type=radio<?php echo $_GET == 1 ? " checked" : ""; ?> value=1 onClick=location.href='Untitled-2.php?state1='+form1.state1.value>";
    <?php
    if($_GET == 1)
    {
    echo "<input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\">";
    echo "<input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\">";
    }
    ?>
    </form>
  • edited 九月 2005
    糟糕,手邊沒php只能用猜的修改

    <form name="form1" method="post" action="">
    <input name="state" type="radio"<?php echo ($_GET == 1 ? "" : " checked"); ?> value="1" onClick="location.href='Untitled-2.php?state='+form1.state.value">
    <input name="state1" type="radio"<?php echo ($_GET == 1 ? " checked" : ""); ?> value="1" onClick="location.href='Untitled-2.php?state1='+form1.state1.value">
    <?php
    if($_GET == 1)
    {
    echo "<input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\">";
    echo "<input type=\"checkbox\" name=\"checkbox\" value=\"checkbox\">";
    }
    ?>
    </form>

    順便解釋一下
    <?php echo ($_GET == 1 ? "" : " checked"); ?>
    這寫法我忘了叫什麼
    他功用很類似if .. else
    可看成是
    if ($_GET == 1)
    echo "";
    else
    echo " checked";
  • edited 九月 2005
    個人覺得你的方法很複雜....

    從你最後寫的需求來看.只要用 javascript + html 就可以達成...

    請看 http://home.v-dark.net/~darkhero/test/formTest.html

    這是我剛剛做的...

    用一個單純的 form + javascript 的 function 去檢查即可...
  • edited 九月 2005
    謝謝Darkhero大大的指導!因為小弟不會JS,剛看了你的寫法,確實是簡單很多!
    <form name="testForm" method="post" action="">
    Disable:<input type="radio" name="stat2" value="0" onClick="checkEnable();" checked>
    Enable:<input type="radio" name="stat2" value="1" onClick="checkEnable();">
    <input type="checkbox" name="checkbox1" value="2">
    <input type="checkbox" name="checkbox2" value="3">
    </form>
    <script>
    function checkEnable(){
    radioCheck =document.testForm.stat2[0].checked;

    if(radioCheck == false){
    document.testForm.checkbox1.disabled = false;
    document.testForm.checkbox2.disabled = false;
    }else{
    document.testForm.checkbox1.disabled = true;
    document.testForm.checkbox2.disabled = true;
    }
    }
    checkEnable();
    </script>
    <form name="form1" method="post" action="">
    <input name="state" type="radio" <?php echo ($_GET == 1 ? "" : " checked"); ?> value="1" onClick="location.href='Untitled-2.php?state='+form1.state.value">
    <input name="state1" type="radio" <?php echo ($_GET == 1 ? " checked" : ""); ?> value="1" onClick="location.href='Untitled-2.php?state1='+form1.state1.value">
    <input type="checkbox" name="checkbox" value="checkbox"<? echo($_GET==1 ? "" : "disabled ");?>>
    <input type="checkbox" name="checkbox" value="checkbox"<? echo($_GET==1 ? "" : "disabled ");?>>
    </form>
    不過兩者RUN的結果有差哦!但效果還是一樣啦!
Sign In or Register to comment.