这很好。唯一的问题是,如果在第一页的项目列中某行的值是“ hello world”,则在第二页的项目列中仅显示“ hello world”。我希望它在下一页表中显示完整的值“ hello world”。有什么建议吗?
首页代码:
`<?php
$conn=mysqli_connect("localhost","root","","bhaiya_pizza");
if($conn-> connect_error){
die("Connection field:". $conn-> connection_error);
}
$sql="SELECT id,item,price from beverages";
$result=$conn->query($sql);
if($result->num_rows>0){
while($row=$result->fetch_assoc()){
$values = $row["id"].'|'.$row["price"].'|'.$row["item"];
echo"<tr><td>".$row["id"]."</td><td>".$row["item"]."</td>
<td>".$row["price"]."</td><td>"."<input type='checkbox'
name='menu[]'
value=".$values."></td></tr>";
}
echo"</table>"; }else {
echo"0 result"; }
$conn->close();
?>`
第二页代码:
`<table border="2px" align="center">
<tr >
<th width="100">ID</th>
<th width="200">Item</th>
<th width="100">Price</th>
</tr>
<?php
$name=$_POST['menu'];
foreach ($name as $row) {
$values = explode("|",$row);
echo"<tr><td>".$values[0]."</td><td>".$values[2]."</td>
<td>".$values[1]."</td></tr>";
}
?>
</table>`
答案 0 :(得分:0)
这是因为单词中有空格,HTML认为这是输入标签的下一个属性。 我建议您将数据编码为json和base64:
在第一页,而不是您的$ values字符串,创建一个数组并对其进行编码:
$btn_values = [
$row["id"],
$row["price"],
$row["item"],
];
$values = base64_encode(json_encode($btn_values));
echo "<tr><td>".$row["id"]."</td><td>".$row["item"]."</td>
<td>".$row["price"]."</td><td>"."<input type='checkbox'
name='menu[]'
value=".$values."></td></tr>";
在第二页上执行相反的操作:
$values = json_decode(base64_decode($row));
echo "<tr><td>".$values[0]."</td><td>".$values[2]."</td>
<td>".$values[1]."</td></tr>";
您的字符串将没有任何特殊字符(这可能会阻止正常显示表格):
WzEsMS45OSwiaGVsbG8gd29ybGQiXQ==