PHP根据表单中的选定选项显示div信息

时间:2015-05-14 13:21:53

标签: php html

我想使用PHP根据选择的选项更改div的信息。以下是我的HTML& PHP。我不认为我在if语句中使用了正确的运算符或语法。我基本上想根据所选的选项从我的数据库中的表中提取信息。现在我在我的代码中没有这个,因为它在这一点上是无关紧要的。任何帮助表示赞赏。

    <select id=\"numberofstaff\">
        <option class=\"staffselection\" value=\"\">--Select--</option>
        <option class=\"staffselection\" value=\"smalljobsite\">1-3 staff</option>
        <option class=\"staffselection\" value=\"mediumjobsite\">4-7 staff</option>
        <option class=\"staffselection\" value=\"largejobsite\">8+ staff</option>
    </select>

<?php
$selectOption = $_POST['numberofstaff'];

echo "<div id='jobsite_price'><p>";
if ($selectOption == 'smalljobsite'){
    echo "smalljobsite";
};
if ($selectOption == 'mediumjobsite'){
    echo "mediumjobsite";
};
if ($selectOption == 'largejobsite'){
    echo "largejobsite";
};
echo "</p></div>";
    ?>

3 个答案:

答案 0 :(得分:5)

您需要表单标签和POST方法,同时为select选择一个name属性。你不能单独依赖id,而不是没有JS / Ajax。

旁注:我从转义的引号中删除了\,因为它们不在您发布的代码中的echo语句/ PHP中。这将抛出错误/警告,例如&#34;未加引号的属性&#34;。如果您在echo声明中使用它,那么您需要重新添加它们。

  • 仅供参考:转义引号\"仅在echo / PHP内部进行。

附加说明:

  • 如果你想运行单独的SQL语句,那就相当简单了。在回声形式// RUN SQL HERE中回声的位置和位置,您只需在SQL查询中包含一个文件即可。我自己做,它减少了很多代码,并且更容易管理。

HTML / PHP:

<form method="post" action="">

    <select id="numberofstaff" name="numberofstaff">
        <option class="staffselection" value="">--Select--</option>
        <option class="staffselection" value="smalljobsite">1-3 staff</option>
        <option class="staffselection" value="mediumjobsite">4-7 staff</option>
        <option class="staffselection" value="largejobsite">8+ staff</option>
    </select>

<input type="submit" name="submit" value="Submit">

</form>

<?php
if(isset($_POST['submit'])){
$selectOption = $_POST['numberofstaff'];

echo "<div id='jobsite_price'><p>";
if ($selectOption == 'smalljobsite'){

  // RUN SQL HERE

    echo "smalljobsite";
}
if ($selectOption == 'mediumjobsite'){

  // RUN SQL HERE

    echo "mediumjobsite";
}
if ($selectOption == 'largejobsite'){

  // RUN SQL HERE

    echo "largejobsite";
}
echo "</p></div>";

} // brace for if(isset($_POST['submit']))
?>

<强> Foonotes:

要包含文件,您可以使用include()

// Include your SQL query
include('query_file.php');

您在注释代码中看到// RUN SQL HERE

另一种选择是使用Ajax。

以下是一些链接:

答案 1 :(得分:1)

如果您只是使用php来检查所选值,则可以使用jquery,即:

&#13;
&#13;
$("select").on('change', function() {
  $("#jobsite_price").html("<p>"+$(this).val()+"</p>")
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="numberofstaff">
        <option class="staffselection" value="">--Select--</option>
        <option class="staffselection" value="smalljobsite">1-3 staff</option>
        <option class="staffselection" value="mediumjobsite">4-7 staff</option>
        <option class="staffselection" value="largejobsite">8+ staff</option>
    </select>
<div id='jobsite_price'></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用纯JavaScript来执行此操作。

window.addEventListener('load', function(){

    var el = document.querySelector("#numberofstaff");

    el.addEventListener('change', function(){

        var data = { numberofstaff : el.value };   

        var request = new XMLHttpRequest();
        request.open('POST', 'YourUrl.php', true);
        request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
        request.send(data); 

        request.onload = function(result){          
          document.querySelector("#jobsite_price").innerHTML = result.responseText;
        }   

    });    

});