2011-03-16 15 views
1

プレースホルダテキストを入力したい入力がありますが、の場合は、の値が空の文字列の場合のみです。テキストボックスに入力する値はPHP配列からエコーされますが、この値が空の場合は代わりにプレースホルダをエコーする必要があります。現時点では、私はこのコードを持っている:フィールドが空白の場合、エコープレースホルダ

 
<?php echo sponsorData('address0') == '' ? 'Address Line 1' : 'Other'; ?> 

sponsorData()は、単にアレイからのものを取得します。唯一の議論は鍵です。ここでの重要なビットは、それがastringを返すことです。

このコードは奇妙な動作を示します。 Hello worldAddress Line 1のようなものが得られます。Hello worldはユーザーが入力したテキストで、Address Line 1は明らかにプレースホルダーです。不思議なことに、プレースホルダーは提出時に配列に格納されます。

私の質問は、誰かが私の三元演算子の訂正を提供することができますか、それがうまくいかない場合は、インラインifのステートメント(ぼろぼろ)を教えてください。あなたは、演算子の優先順位の問題に実行している

<?php echo ((sponsorData('address0') == '') ? 'Address Line 1' : 'Other'); ?> 

フェリックス

答えて

1

おかげ

+0

感謝を! 'sponsorData()'から文字列を返すのではなく、エコーしていたことが判明しました。JamWafflesは "脳の仕組み"のようなものです。 – Bojangles

3

は、次のコードを試してみてください。試してみてください:

<?php echo (sponsorData('address0') == '' ? 'Address Line 1' : 'Other'); ?> 

(三項演算子ステートメントの前後にかっこを入れてください)。

0

これは正常に動作しているようですが、エラーはそこにあります。ここで私はそれを行うだろうかです:

$address0 = sponsorData('address0'); 

$address0 = !empty($address0) ? $address0 : 'placeholder'; 
0

あなたはこのように、trim機能を追加することができますので、sponsorData('address0')にスペースを持っていることを考慮しなければならない。説明のため

<?php echo ((trim(sponsorData('address0')) == '') ? 'Address Line 1' : 'Other'); ?> 
関連する問題