我有jquery手风琴标签。在这些选项卡中,我有一个隐藏的表单,单击,自动填充该选项卡中显示的某些值。它在accordion选项卡中正确显示,但是当我在表单中传递与自动填充值相同的变量时,如果有超过1个单词,则只显示第一个单词。我作为文本框的值属性放置的变量名称完全相同,所以我不知道为什么会发生这种情况。
echo "<tr><p><td>".$allCourses[$i][0]."</td> - <td>".$allCourses[$i][1]."</td>
它在这里正确显示。但是,这里只出现第一个单词:
<form action='editCourse.php' method='post'>
<p id='edit-course-d' class='edit-accordion-tab'><img src='images/edit.png' title='Edit Course'/></p>
<p id='edit-course-f' style='display: none'>
Course ID: <input type='text' name='edit-course-id' value =".$allCourses[$i][0]."><br />
Course Name: <input type='text' name='edit-course-name' value=".$allCourses[$i][1]."><br />
(所有这些都在php中的echo“中”
答案 0 :(得分:0)
您必须在value
- 属性的内容周围加上引号,否则“其他词”将被解释为HTML属性。因此,呈现给浏览器的内容如下:
<input value=hello world>
浏览器会将此解释为input
元素,该元素具有两个属性:
value="hello"
world=""
因此,您必须在属性值周围加上引号'
或双引号"
。像那样:
echo "
<form action='editCourse.php' method='post'>
<p id='edit-course-d' class='edit-accordion-tab'><img src='images/edit.png' title='Edit Course'/></p>
<p id='edit-course-f' style='display: none'>
Course ID: <input type='text' name='edit-course-id' value='".htmlspecialchars($allCourses[$i][0])."'><br />
Course Name: <input type='text' name='edit-course-name' value='".htmlspecialchars($allCourses[$i][1])."'><br />";
我使用htmlspecialchars
来逃避可能出现在值中的引号(这会增加另一层安全性)。