2009-12-15 5 views
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"란 무엇입니까? –

+0

예. 작동해야합니다. 하지만 태그의 닫기 태그가 누락되었습니다. – solairaja

+0

제대로 작동하지 않습니다. 단추 뒤에 PHP 코드도 표시됩니다. – RKh

답변

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 또는 symphony와 같은 프레임 워크를 사용하면 헬퍼를 사용하여 더 쉽게 버튼을 생성 할 수 있습니다.

+0

당신은 거의 똑같은 예제를 10 초 동안 두들겨 패고, 아마 코드 블록이 스크롤 할 필요가 없도록 광산을 포맷하는데 보냈습니다! –

+0

ps : asp 스타일의 태그 ('%>')가 php.ini에서 켜져 있어야하는 PHP 설정 인 점을 제외하고는 +1 할 것입니다. 표준 마감 태그 ('?>') –

+0

내 나쁜, %>을 제안하는 것이 당신이 레일로 할 수있는 방법이기 때문입니다. 나는 바로 지금 고치고있다. – marcgg

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을 PHP 문자열이 아닌 HTML로 작성하고 PHP 태그를 사용하여 해당 HTML에 변수를 반향하는 것을 선호합니다. 어떤 사람들은이 방법을 사용하기를 원하지 않을 수도 있습니다. 당신이 PHP이있는 경우에도 <?=$button;?>

+0

기본 동일한 대답에 대한 10 초간의 차이점. +1에 분명히 동의합니다 ^^ – marcgg

0

을 사용할 수 있습니다에 짧은 태그 그것은, 당신이 그들의 typesubmit에 변화 고려해 볼 수 있습니다 귀하의 버튼에서 원하는 동작에 따라

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

0

해야한다 전환했다.

편집 그것은 당신의 코드가 작동 응답에서 보인다

. 그러나 버튼 뒤에 PHP 코드가 나오고 있다고합니다.

이것은 PHP 파서가 파일을 구문 분석하지 않는다는 것을 의미합니다.

RPK : 웹 서버가 다른 PHP 파일을 올바르게 제공합니까?

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

그래서, $ 새로운 변수가 논리 발송에 실패한다 코드 (컨트롤러)

controller.php :

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

이 w 인 나은 당신이 원하는 것을하는 것까지 :). 보기에서 국제 교류를 지원하는 것도 좋은 습관임을 잊지 마십시오.

관련 문제