Durumuna göre HTML düğme oluşturmak nasıl?

6 Cevap php

Ben aşağıdaki kodu kullanıyorum:

<?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'>";
?>

Bu düğmeleri işlemek için doğru yolu nedir?

6 Cevap

Eğer çalışırsa, o zaman evet tek doğru yöntem. Ifadesi olabilir eğer bir üçlü kullanarak başka bir yolu:

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

Gerçekten kişisel tercih ve netlik meselesi. HTML olarak (bir PHP dize olarak) HTML yazmak ve PHP etiketlerini kullanarak HTML içine değişkenleri echo tercih. Bazıları bu yöntemi kullanmak gibi olmayabilir. PHP, kısa etiketler açık varsa bile kullanmak <?=$button;?> olabilir

Bu tamamen geçerli ve okunabilir.

Kod satırları sayısı sizin için önemli ise, siz de yapabilirsiniz:

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

Benim PHP yüzden sözdizimi kapalı olabilir biraz paslı, ama fikir olsun.

Böyle CakePHP'de veya senfoni gibi bir çerçeve kullanıyorsanız, daha kolay düğmeleri oluşturmak için onların yardımcıları kullanabilirsiniz.

Temel olarak, evet bu şekilde yapabilirsiniz. Uygulamanızın büyüklüğüne ve programlama deneyimine bağlı bir çiftleşmiş sistemi (örn. Smarty) kullanmaya başlamak için düşünebilirsiniz. Bu şekilde php kodu ve html biçimlendirme ayırmak olabilir.

Best wishes,
Fabian

Bu olmalı

<?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'/>";?>

Bunu yapmanın daha iyi bir yolu sadece mantığı düzen kodunu ayırmak ou, bir şablon sistemi kullanıyor:

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; ?>

Yani, $ değişken yeni mantıksal kod (kontrolör) tarafından gönderildi, edilir:

controller.php:

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

This is a better way to doing what you want :). Don't forget that is a good practice to also support internacionalization on view.

Eğer düğmeleri istediğiniz davranışı bağlı olarak, submit kendi type değiştirmeyi düşünebilirsiniz.

EDIT

Bu kod fonksiyonel yanıtlardan görünüyor. Ancak, PHP kodu düğmeler arkasında ortaya çıktığını söylüyorlar.

Bu dosya PHP çözümleyici tarafından ayrıştırılır değil olduğunu bana ima.

RPK: Doğru diğer PHP dosyalarını sunan web sunucu mi?