2016-06-27 2 views
1

このコードでは、シェルのファイルの7行目を読み込み、その値が "set"であれば、チェックボックスの状態をcheckedに変更します。PHPを使ってラジオボタンを動的にチェックする方法を教えてください。

<input type="radio" name="myName" value="myValue" <?php 
    if(shell_exec("./read_from_db 7")=="set") echo ' checked="checked"' 
?> 

このコードは動作しないようです。ファイルの7行目が「設定」されていてもラジオボタンはチェックされません。何故ですか?コードの何が間違っていますか?

+1

あなたは 'shell_exec(" ./ read_from_db 7 ")'があなたに正確に 'set'を与えていることを確認できますか? – FirstOne

+0

はい私はそれについて確信しています – rivas

答えて

1

shell_execの結果はあなたに何か特別なものを与えています。

ので、trimを使用してみてください:ここ

if(trim(shell_exec("./read_from_db 7"))=="set") echo ' checked="checked"' 

試験である:

var_dump(shell_exec('echo set')); 
echo '<br>'; 
var_dump(trim(shell_exec('echo set'))); 
echo '<br>'; 
$v1 = shell_exec('echo set') == 'set'; 
$v2 = trim(shell_exec('echo set')) == 'set'; 
var_dump($v1); 
echo '<br>'; 
var_dump($v2); 

と出力:

列(4)
"に設定します" string(3) "set"
個の ブール値(false)を
BOOL(真)

あなたも、元のコードではスペースなしで、それはそこに何かを追加したことがわかります。私の推測では、何らかの改行やそれに類するものです。

+0

ありがとうございました:)正しいです...(trim()) – rivas

+0

@rivasと同じように、結果が正確に 'set'だったかどうかを尋ねたときのことです。xD – FirstOne

関連する問題