0

私はこのフォームを作りたい:

echo '<form method="post" action="ratinghandler.php" style="width: 250px">
                <input type="hidden" name="reference" value= "$id"/>
                <select name="rating" style="width: 115px">
                <option> Rate </option>
                <option>1 Bad</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5 Average</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option value="10">10 Best</option>
                </select><input name="submit1" type="submit" value="Submit Rating" /></form>';

特筆すべきは隠しポーション。echo $_POST[reference] のハンドラ ページの出力は、単純な $id です ($id 内に格納された値とは対照的です)。

その行を次のように変更しようとしました。

<input type="hidden" name="reference" value= "<? echo $id ?>"/>

私はかなりばかげたことをしていると思いますが、検索してもこれに直接対処するものは何も見られなかったので、質問しても大丈夫だと思いました.

4

1 に答える 1

2

次の構文を使用します。

<input type="hidden" name="reference" value= "'. $id .'"/>

echo で一重引用符を使用すると、変数を補間できません。文字列には非常に多くの二重引用符があるため、単一引用符が使用されました。ドット演算子を使用して、文字列を分割し、変数を連結できます。コンマ演算子を使用して、文字列の連結を回避することもできます。

二重引用符を使用している場合は、そのままに$idしておくと補間されますが、文字列内のすべての二重引用符をエスケープする必要があります。

最後に、HEREDOC を使用して、二重引用符と補間を許可できます。

echo <<<EOF
<form method="post" action="ratinghandler.php" style="width: 250px">
            <input type="hidden" name="reference" value= "$id"/>
            <select name="rating" style="width: 115px">
            <option> Rate </option>
            <option>1 Bad</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
            <option>5 Average</option>
            <option>6</option>
            <option>7</option>
            <option>8</option>
            <option>9</option>
            <option value="10">10 Best</option>
            </select><input name="submit1" type="submit" value="Submit Rating" />    
</form>
EOF;
于 2012-06-15T23:58:33.940 に答える