如何从单选按钮获取多个值,然后将它们分配到单个变量并在页面上显示?

时间:2021-06-08 13:38:06

// A major problem is once a user selects a radiobutton and hits submit the value, it sends an array. I would like to place those individual queries(route_no, to_city, from_city, price) on the nextpage.php page in a table next to their table headers or next to the tags. I cant do this because, confirm value sends all queries as a single string/array. How can I fix this please help me.enter image description here

//一个主要问题是,一旦用户选择了radiobutton并点击提交值,它就会发送一个数组。我想将这些单独的查询(route_no,to_city,from_city,price)放在其表格标题旁边或标签旁边的表格中的nextpage.php页面上。我不能这样做因为,确认值将所有查询作为单个字符串/数组发送。我该如何解决这个问题,请帮助我。在此处输入图像说明

here is my html page

这是我的html页面

<html>
<head>
<script>
function showUser(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
        };
        xmlhttp.open("GET","display3.php?q="+str,true);
        xmlhttp.send();
    }
}
</script>
</head>
<body>

<form>
<select name="to_city" onchange="showUser(this.value)">
  <option value="">Select a person:</option>
  <option value="Sydney">Sydney</option>
  <option value="Brisbane">Brisbane</option>
  <option value="3">Joseph Swanson</option>
  <option value="4">Glenn Quagmire</option>
  </select>
</form>
<br>
<div id="txtHint"><b>Person info will be listed here...</b></div>

</body>
</html>

here is my display3.php page

这是我的display3.php页面

<!DOCTYPE html>
<style>
td{

    padding-top: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}
</style>
<body>

<?php
$q = strval($_GET['q']);

$con = mysqli_connect('localhost','root','','mydb');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"flights");
$sql="SELECT * FROM flights WHERE to_city = '".$q."'";
$result = mysqli_query($con,$sql);

?>
<form action="nextpage.php" method="get">


   <?php
echo "<table>
<tr>
<th>Route_no</th>
<th>to_city</th>
<th>from_city</th>
<th>price</th>
<th>Confirm</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
    $all_values = $row['route_no'] .",".$row['to_city'].",".$row['from_city'].",".$row['price'];
    echo "<tr>";
    echo "<td>" . $row['route_no'] . "</td>";
    echo "<td>" . $row['to_city'] . "</td>";
    echo "<td>" . $row['from_city'] . "</td>";
    echo "<td>" . $row['price'] . "</td>";
echo "<td><input type='radio' name='Confirm' value='".$all_values."'></td>";
    echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?> 
    <input type="submit" value="Submit">
</form>
</body>
</html>

here is my nextpage.php

这是我的nextpage.php

<!DOCTYPE html>
<head>
<style>
td{

    padding-top: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}

    </style>
    <body>

    <h1>Booking Details</h1>

    <h2>Flight No.</h2>
    <h2>to_city</h2>
    <h2>from_city</h2>
    <h2>Price</h2>


    <?php


    echo $_GET['Confirm']; 


    ?>
    <table >
    </body>
    </head>
    </html>

2 个解决方案

#1


0  

use explode function to form a array separated by , .

使用explode函数形成一个由...分隔的数组。

     <?php

       $str = "4,sydney,canberra,120.00";
        print_r (explode(",",$str)); 

      ?>

   out put 

         Array
       (
          [0] => 4
          [1] => sydney
          [2] => canberra
          [3] => 120.00
         )

#2


0  

Yes explode can work like so, in nextpage.php

是的爆炸可以这样工作,在nextpage.php

<!DOCTYPE html>
<head>
<style>
td{    
    padding-top: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}

</style>
<?php
  $details = explode(",", $_GET['Confirm']);
?>
</head>
<body>
<h1>Booking Details</h1>
<table>
  <tr>
   <th>Flight No.</th>
   <td><?=$details[0]?></td>
  </tr>
  <tr>
   <th>to_city</th>
   <td><?=$details[1]?></td>
  </tr>
  <tr>
   <th>from_city</th>
   <td><?=$details[2]?></td>
  </tr>
  <tr>
  <tr>
   <th>Price</th>
   <td><?=$details[3]?></td>
  </tr>    
</table>
</body>
</html>

#1


0  

use explode function to form a array separated by , .

使用explode函数形成一个由...分隔的数组。

     <?php

       $str = "4,sydney,canberra,120.00";
        print_r (explode(",",$str)); 

      ?>

   out put 

         Array
       (
          [0] => 4
          [1] => sydney
          [2] => canberra
          [3] => 120.00
         )

#2


0  

Yes explode can work like so, in nextpage.php

是的爆炸可以这样工作,在nextpage.php

<!DOCTYPE html>
<head>
<style>
td{    
    padding-top: 10px;
    padding-right: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
}

</style>
<?php
  $details = explode(",", $_GET['Confirm']);
?>
</head>
<body>
<h1>Booking Details</h1>
<table>
  <tr>
   <th>Flight No.</th>
   <td><?=$details[0]?></td>
  </tr>
  <tr>
   <th>to_city</th>
   <td><?=$details[1]?></td>
  </tr>
  <tr>
   <th>from_city</th>
   <td><?=$details[2]?></td>
  </tr>
  <tr>
  <tr>
   <th>Price</th>
   <td><?=$details[3]?></td>
  </tr>    
</table>
</body>
</html>