PHP标记内的PHP标记,有替代方法吗?

时间:2019-06-08 10:07:01

标签: php html

如果用户处于特定等级,我想回显一堆html代码。但我得到一个错误 解析错误:语法错误,意外的'?'

PHP代码

<?php if ($row['rank'] == 0) { echo '

//SOME CODE HERE
                                <label>Question 1: </label>
<input class="au-input au-input--full" style="width: 50%;" type="text" name="question1" placeholder="Question 1" value="' . $question1 . '"></input>
<input type="checkbox" name="q1multiple"' <?php if(isset($_POST['q1multiple'])) { echo "checked='checked'"; } ?> '>
<label>Allow more than one answer </label>
</div>

//SOME CODE HERE
end of echo';} ?>

错误发生在if(isset($ _ POST ['q1multiple'])){echo“ checked ='checked'”部分。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您应该学习PHP的基础知识,您在echo内部,不要再次打开<?php,只需使用:

<input type="checkbox" 
     name="q1multiple"
     '. (isset($_POST['q1multiple'])) ? "checked='checked" : '') .'
>

这只是字符串连接。

答案 1 :(得分:1)

您不能在PHP标签内使用PHP标签。 尝试使用short-if命令,例如: (isset($_POST['q1multiple']) ? 'checked="checked"' : '')

这是您的代码修复程序:

<?php if ($row['rank'] == 0) { echo '

//SOME CODE HERE
                                <label>Question 1: </label>
<input class="au-input au-input--full" style="width: 50%;" type="text" name="question1" placeholder="Question 1" value="' . $question1 . '"></input>
<input type="checkbox" name="q1multiple"' . (isset($_POST['q1multiple']) ? 'checked="checked"' : '') . '>
<label>Allow more than one answer </label>
</div>

//SOME CODE HERE
end of echo';} ?>