php
  • html
  • 2009-12-15 68 views 0 likes 
    0

    我使用下面的代碼:如何根據條件創建HTML按鈕?

    <?PHP 
         if ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == "") 
        echo "<input id='Submit' name='Submit' value='Submit' type='button'>"; 
         else 
        echo "<input id='Update' name='Update' value='Update' type='button'>"; 
    ?> 
    

    這是渲染按鈕的正確方法是什麼?

    +0

    你是指「正確的方式」是什麼意思?什麼是代碼?什麼是「workMode」? – 2009-12-15 11:54:35

    +0

    是的,它應該工作。但是您錯過了標籤的結束標籤。 – solairaja 2009-12-15 11:54:57

    +0

    這是不正確的工作。在按鈕後面,它也顯示了php代碼。 – RKh 2009-12-15 12:08:18

    回答

    2

    這是完全有效和可讀。

    如果代碼行數是對你很重要,你也可以這樣做:

    <?php $action = ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'])? "Submit" : "Update" %> 
    <input id="<?php echo $action ?>" name="<?php echo $action ?>" value="<?php echo $action ?>" type="button" /> 
    

    我的PHP是一個有點生疏,所以我可能會關閉在語法,但你的想法。

    如果您使用的框架,如CakePHP的或交響樂,你可以用自己的助手更容易地生成按鈕。

    +0

    哈哈,你用幾乎相同的例子打了我10秒,我可能花了我的格式來讓代碼塊不需要滾動! – 2009-12-15 11:57:27

    +0

    ps:我會爲它+1,除了asp風格的標籤('%>')是一個PHP設置,需要在php.ini中打開。最好提示標準結束標記('?>') – 2009-12-15 11:59:05

    +0

    我的不好,%>只是因爲這是你用軌道做的方式。我現在正在修復它 – marcgg 2009-12-15 12:03:02

    1

    基本上,是的,你可以這樣來做。根據應用程序的大小和您的編程經驗,你可能要考慮開始使用模板系統(如Smarty的)。這樣你可以分開php代碼和html標記。

    最良好的祝願,
    費邊

    2

    如果成功,那麼是的,它是一個正確的方法。另一種方法,使用三元if語句可能是:

    <?PHP $button = $_SESSION['WorkMode'] == 'New' 
        || $_SESSION['WorkMode'] == '' ? "Submit" : "Update"; ?> 
    <input id="<?php echo $button;?>" name="<?php echo $button;?>" 
        value="<?php echo $button;?>" type='button' /> 
    

    說實在的,個人喜好和透明度的問題。我更喜歡將HTML編寫爲HTML(而不是PHP字符串),並使用PHP標記將變量回顯到該HTML中。有些人可能不喜歡使用這種方法。如果你有PHP短標記開啓你甚至可以用<?=$button;?>

    +0

    真實,基本相同的答案10秒差異。 +1給你,因爲顯然我同意這^^ – marcgg 2009-12-15 12:04:15

    0

    應該

    <?PHP  
    if ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == "")  
         echo "<input id='Submit' name='Submit' value='Submit' type='button'/>";  
    else  
         echo "<input id='Update' name='Update' value='Update' type='button'/>";?> 
    
    +0

    它顯示按鈕後面的PHP代碼。 – RKh 2009-12-15 12:09:34

    0

    根據您的按鈕你想要的行爲,你可能會考慮改變他們的typesubmit

    編輯

    它從你的代碼是功能性的迴應似乎。但是,你說PHP代碼出現在按鈕後面。

    這意味着,我認爲該文件沒有被PHP解析器解析。

    RPK:是否正常投放其他PHP文件的Web服務器?

    0

    這樣做是使用模板系統的更好的方法,OU單純從邏輯分開佈局代碼:

    view.php:

    <?php if ($new): ?> 
        <input id='Submit' name='Submit' value='Submit' type='button'> 
    <?php else: ?> 
        <input id='Update' name='Update' value='Update' type='button'> 
    <?php endif; ?> 
    

    所以,$新的變量是由邏輯sended代碼(控制器):

    Controller.php這樣:

    $new = ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == ""); 
    include("view.php") 
    

    這是一種更好的瓦特唉,做你想做的事:)。 不要忘記,這也是支持國際化的良好實踐。

    相關問題