我正在尝试从我的服务器调用tinyInt,同时将其转换为布尔值。
有没有比我使用的更简单的方法呢?
while ($row = mysql_fetch_array($result)) {
echo "<td>",
"<input type=\"checkbox\" id='switch-state' name=\"$row[name]\" state=\"<script boolean(<? echo '$row[state]'; ?>) </script>\" </td>";
}
答案 0 :(得分:2)
这是各种错误。
<script>
标记。这实际上太可怕了。htmlspecialchars()
将输出的所有字符串数据传递给HTML,以避免破坏结果HTML并最大限度地降低XSS漏洞的风险。state="…"
)之外的其他内容来传输元素中的额外数据。
HTML5的data-*
属性非常合适(data-state="…"
)。例如,另一种选择是CSS类。这取决于您打算如何处理州信息。0
评估为false
,所有其他数字评估为true
。您可能希望按原样传输服务器数据,而不是翻译它。 这就是我要做的事。
$index = 0;
while ($row = mysql_fetch_array($result)) {
$index++;
echo "<td>",
"<input type='checkbox' ",
"id='switch-state-$index' ",
"name='".htmlspecialchars($row['name'])."' ",
"data-state='".$row['state']}."'",
"></td>\n";
}
输出:
<td><input type='checkbox' id='switch-state-1' name='foo' data-state='1'></td>
<td><input type='checkbox' id='switch-state-2' name='bar' data-state='0'></td>
答案 1 :(得分:0)
速记php在这里会很好
//Add this bit and reformat your statement
echo ($row['state'] == 1) ? "true" : "false";
$format = "<td>%s</td><td>%s</td><td>%f</td><td>%f</td><td><input type=\"checkbox\" id='switch-state' name=\"%s\" state=\"%s\" </td>";
$data = sprintf($format, $row['city'], $row['name'], $row['lat'], $row['long'], $row['name'], ($row['state'] == 1) ? "true":"false" );
echo $data;