2011-05-16 5 views
6

나는 포스트 PHP 양식 및 입력 세트가 동일한, 단지 이름이 바뀝니다 :HTML/PHP 기본 입력 값

defaul value = 값을 사용할 수없는 경우 t 값?

[편집]

좋아, 그래서, 일반적으로 내가 뭔가 같이 할 것 : I는 입력 데이터를 잡고 value="<?php echo get_option('your_name'); ?>"를 사용하여 표시하는 PHP 스크립트를

<input type="text" name="your_name" value="Mike" /> 

그러나이 경우. 그래서 나는 내 양식에 "Mike"가 표시되게하는 방법을 모릅니다.

+4

나는 어떤 상황에서'가치 ='** ** ** 사용할 수 없을 것입니다. 왜 * 사용할 수 없을지 명확히 할 수 있습니까? –

+0

@ David 토마스, 질문을 업데이트했습니다. – Wordpressor

+0

특수 문자를 이스케이프 처리하는 것을 잊지 마십시오! http://stackoverflow.com/questions/6249151/how-to-properly-escape-html-form-input-default-values-in-php – Tel

답변

5

당신은 첫 번째 get_option의 반환 및 대체 뭔가를 확인해야합니다.

+0

내 작은 라이브러리 [ValueResolver] (https://github.com/LapaLabs/ValueResolver)를 사용하여 더 많은 작업을 수행 할 수 있습니다. 단순히 –

0

switch 문을 수행하고 원하는대로 기본값을 설정할 수 있습니다. 기본을 사용할 수없는 경우 기본

<?php 
    $default = get_option('your_name'); 
    if($default == "") 
    { 
     $default = <whatever your default value is>; 
    } 
?> 
<input type="text" name="your_name" value="<?php echo $default; ?>" /> 

변경 빈 문자열을 반환 get_option (또는 뭔가 다른)를 사용할 수없는 경우

-2

시작시 변수를 포스트 변수로 설정하십시오. value 이후

$name_val = ""; 
if(isset($_POST["your_name"]) 
{ 
    $name_val = $_POST["your_name"]; 
} 

<input type="text" name="your_name" value="<?= $name_val?>"> 
+3

거대한 XSS 구멍이 있습니다. – Quentin

+0

그리고 'value' 속성에있는 php의 끝나지 않은 라인은 말도 안되게 까다 롭지 않습니다. –

+0

@David Thomas, 종료되지 않은 행은 무엇을 의미합니까? –

0

기본이

처럼 그냥처럼 get_option α- 함수, 어쩌면 뭔가 주위에 조건을 추가 :

<input type="text" name="your_name" value="<?php $var = get_option('your_name'); if ($var == '') $var = 'your_default'; echo $var; ?>" /> 
+1

html 안에 모든 로직을 작성하는 것이 가장 좋은 방법은 아닙니다 :) – Teneff

+1

매우 사실이지만, 나는 거기에 도달 할 수있는 방법을 보여주고있었습니다. PHP 코드와 HTML에서 구조화 된 분리가 가정되어야합니다. – Bjoern

2

당신이 같을 위해 get_option() 기능을 변경할 수 있습니다

function get_option($name) { 
    $defaults = array(
     'fist_name' => 'Mike', 
     'fist_name' => 'Wordpressor', 
     'my_name' => 'Dunno' 
    ); 
    // get the value from the $defaults array 
    $val = $defaults[$name]; 

    // but if the same value has already been posted - replace the default one 
    if (isset($_POST[$name])) { 
     $val = $_POST[$name]; 
    } 
    return $val; 
} 
0

나는 동의한다. h Teneff하지만 나는 그것을 깰 것이다.

<form method="post" action=""> 
<input id="names"><? echo $defaultText; ?> </input> 
</form> 

은 그때에 별도의 파일을 것이다 다음의 index.php에서

나는 양식이

<? 
$defaultText = include 'default_text.php'; 
?> 

이 될 것이라고하여 문서의 상단에 다음과 같은 것 루트 레벨은 "default_text.php"입니다.또한 능력

있습니다 use LapaLabs\ValueResolver\Resolver\ValueResolver; 네임 스페이스를 사용하는

$default = ValueResolver::resolve(get_option('your_name'), '<whatever your default value is>'); 

하고 잊지 마세요 "

<? 
$Name = <<<EOD Name EOD; 
return $Name; 
?> 
0
<input type="text" name="your_name" value="<?php echo empty(get_option('your_name')) ? "TheDefaultValue" : get_option('your_name'); ?>" /> 
0

당신은 예를 들어,이 경우 내 작은 도서관 ValueResolver를 사용할 수 있습니다 타입 캐스팅 (예 : 변수 값이 integer 일 경우)

$id = ValueResolver::toInteger('6 apples', 1); // returns 6 
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value) 

체크 더 많은 예제

0

$ _POST는 값이 그렇지 않으면 $ _POST 값에서 채워집니다 읽을 때 나는 비슷한 믿고 내 문제,이 문제를 해결하는 방법이 있습니다에 대한 docs은 기본값으로 설정 마이크

value="<?php if (isset($_POST['name'])) echo $_POST['name']; else echo "Mike"?>" > 

희망이 사람이

0

는 단순히 삼항 연산자를 사용 oneday하는 데 도움이됩니다. 그것의 꽤 쉬운 이것을 시도하십시오

$default = 'Mike'; 

$your_name = get_option('your_name'); 

$condition = !empty($your_name) ? $your_name : $default; 

<input type="text" name="your_name" value="<?php echo $condition; ?>" />