我正在尝试为要使用提交标记
发布的值分配ID$query = "SELECT * FROM `events`";
$result2 = mysqli_query($connect, $query);
$options = "";
while($row2 = mysqli_fetch_array($result2))
{
$options = $options."<option>$row2[1] $row2[2]</option>";
}
<select>
<?php echo $options;?>
</select>
执行此操作输出事件名称及其发生的日期(我的mysql数据库中的第2和第3项。稍后将在表单中使用并将这些列为选项供有人选择。我想知道是否有我们的mysql数据库中的第一件事是每个“事件”的随机生成的ID,但是我无法弄清楚如何在不破坏选项标签的情况下回显每个事件的id。
答案 0 :(得分:3)
首先,在使用位置结果(即$row2[1]
,SELECT
等)时,您应该在SELECT `ID`, `name`, `date` FROM `events`
查询中明确保证顺序,即
htmlspecialchars()
您真正需要的是在HTML字符串中插入所需的任何动态值。
在这些情况下,最好使用while($row2 = mysqli_fetch_array($result2)) {
$options .= vsprintf('<option value="%s">%s %s</option>',
array_map('htmlspecialchars', $row2));
}
之类的内容来避免标记问题。例如
/app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php
public function addCommentAction(){
......
// get the login info of current user
$_user = Mage::getSingleton('admin/session');
$user['email'] = $_user->getUser()->getEmail();
$user['firstname'] = $_user->getUser()->getFirstname();
$user['lastname'] = $_user->getUser()->getLastname();
$order->addStatusHistoryComment($data['comment'] . " Add by {$user['firstname']}", $data['status'])
->setIsVisibleOnFront($visible)
->setIsCustomerNotified($notify);
答案 1 :(得分:0)
$options .= $options.'<option value="'.htmlspecialchars($id).'">'.htmlspecialchars($event).'</option>';
我认为你的答案是这样的。
答案 2 :(得分:0)
虽然菲尔的方式可能是正确的。我不知道我怎么没试过
"<option value=$row2[0]>$row2[1] $row2[2]</option>"
删除"
周围的额外$row2[0]
使其正常工作。
答案 3 :(得分:-1)
$options = $options."<option value="."$row2[0]".">$row2[1] $row2[2]</option>";
这很简单。