PHP:在选中时显示从一个表到下一页的另一表的一列的完整值

时间:2018-07-15 05:38:33

标签: php html

这很好。唯一的问题是,如果在第一页的项目列中某行的值是“ 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>`

1 个答案:

答案 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==