保留 php 结果作为 div 中的内容

keep php result as content in div

编辑!!! : LINK = http://i299291.iris.fhict.nl/PHP31/DV3/DV3.php

我的问题:

我制作了两个带有多个选项的下拉框。 php 代码正在运行,查询从数据库中获得了正确的结果。但现在我想比较两个选项。

这是我目前得到的结果,现在的问题是当我从另一个下拉框中输入第二个值时整个页面都会刷新。

    <html>
    <head>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <form id = "leftDropdown" action= "" method="post">
    <select name="objectLinks">
      <option value="school">School</option>
      <option value="klas">Klas</option>
      <option value="geslacht">Geslacht</option>
      <option value="lengte">Lengte (CM)</option>
      <option value="kg">Gewicht (KG)</option>
      <option value="opleiding">Opleiding Ouders</option>
      <option value="leeftijdJaar">Leeftijd</option>
      <option value="interventie">Deelname interventie?</option>
      <option value="pestenVoor">Pestincidenten voor interventie</option>
      <option value="pestenNa">Pestincidenten na interventie</option>
      <option value="bmi">BMI waarde</option>
      <option value="overgewicht">Overgewicht</option>
      <option value="allochtonenPerc">Percentage Allochtonen</option>
    </select>
    <input type="submit" name="sendLinks" value="Go!">
    </form> 

    <form id = "rightDropdown" action= "" method="post">
    <select name="objectRechts">
      <option value="school">School</option>
      <option value="klas">Klas</option>
      <option value="geslacht">Geslacht</option>
      <option value="lengte">Lengte (CM)</option>
      <option value="kg">Gewicht (KG)</option>
      <option value="opleiding">Opleiding Ouders</option>
      <option value="leeftijdJaar">Leeftijd</option>
      <option value="interventie">Deelname interventie?</option>
      <option value="pestenVoor">Pestincidenten voor interventie</option>
      <option value="pestenNa">Pestincidenten na interventie</option>
      <option value="bmi">BMI waarde</option>
      <option value="overgewicht">Overgewicht</option>
      <option value="allochtonenPerc">Percentage Allochtonen</option>
    </select>
    <input type="submit" name="sendRechts" value="Vergelijk!">
    </form> 

    <div id = "leftDiv">

        <?php 

        include_once 'dv3ToDB.php'; // connect to database *local or at school's server*

        session_start();

        if(isset($_POST['sendLinks'])){
            $selectedValLinks = $_POST['objectLinks'];
            // echo "Jij selecteerde: ".$selectedVal;
            echo "<script>console.log('$selectedValLinks');</script>";
            // $_SESSION["valLinks"] = $selectedValLinks;
            // echo $_SESSION["valLinks"];

        $query = "SELECT ($selectedValLinks) FROM pesten ORDER BY ($selectedValLinks) * 1";
        $result = $conn->query($query);

        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "Gevonden data in ".$selectedValLinks.": " . $row["$selectedValLinks"] . "<br>" ;
            }
        }else{
            echo "0 results";
        }

        }



    ?>

    </div>

    <div id = "rightDiv">
    <?php



        if(isset($_POST['sendRechts'])){
            $selectedValRechts = $_POST['objectRechts'];
            // echo "Jij selecteerde: ".$selectedVal;
            echo "<script>console.log('$selectedValRechts');</script>";
            // $_SESSION["valRechts"] = $selectedValRechts;
            // echo $_SESSION["valRechts"];

        $conn = mysqli_connect($host,$username,$password,$database)
        or die("verbinding mislukt:".mysqli_connect_error());

        $query = "SELECT ($selectedValRechts) FROM pesten ORDER BY ($selectedValRechts) * 1";
        $result = $conn->query($query);

        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "Gevonden data in ".$selectedValRechts.": " . $row["$selectedValRechts"] . "<br>" ;
            }
        }else{
            echo "0 results";
        }

        }


     ?>
    </div>
    </body>
    </html>

我现在在本地运行它,如果您需要我在线构建数据库来帮助我,请告诉我。

我如何编码才能使 PHP 输出保持在左 DIV and/or 右 DIV 中?

非常感谢你们! :)

您想创建一个新的 <iFrame>,然后将 <iFrame> 的 ID 设置为表单的目标。

例如:

<form ... target="newframe">
    ...
</form>

<iFrame id="newframe"></iFrame>

正如 Lal 提到的,您不需要两种形式,只需一种即可。

如果您不希望它在页面刷新时 "stick",您需要一些代码来将选项更新为选中。

在此处进一步阅读; http://www.w3schools.com/tags/att_option_selected.asp 和这里 html select option SELECTED

甚至尝试Jquery; http://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu

如果你只需要使用 PHP,而不需要任何 JavaScript(这可以让你在选择每个选项后显示数据库的结果而无需重新加载页面),我建议也就是说,在提交一个表单后,您将其结果添加为另一个表单的隐藏输入,因此您可以在提交第二个表单后读取此变量。 像这样:

<? // Your code for getting the result of the 1st form above returns a variable $res1
// Now insert this into the 2nd form:?>
<input type="hidden" name="stored2" value="<?echo $res1;?>"/>

这样,您可以在提交第二个表单后读取变量 $_POST["stored2"] 以获取第一个表单之前返回的内容。 对第一个表格执行相同操作以存储第二个表格的结果(如果它先被填写)。

这样,您可以比较仅使用 PHP 时提交 2 个表单的结果。

编辑: 您需要将所有数据库请求放在表单之前才能使用此方法,稍后只需在 div 中回显结果。