php根据选定选项以形式显示DIV信息



我想根据选择哪个选项来更改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>";
    ?>

您需要在选择"名称属性"的同时,需要表单标签和帖子方法。您不能单独依靠id,而不是没有JS/Ajax。

sidenote:我从逃脱的引号中删除了,因为它们不在您已发布的代码中的Echo语句/PHP中。这将引发错误/警告,例如"未引用的属性"。如果您在Echo'D语句中使用它,则需要将其添加回。

  • 仅供参考:逃避报价"才能完成回声/php。

其他注:

  • 如果您想运行单独的SQL语句,这很简单。eChos在哪里以及我在评论表格// 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。

这里有一些链接:

  • http://www.w3resource.com/ajax/working-with-php-and-mysql.php
  • http://www.tutorialspoint.com/php/php_and_ajax.htm
  • 如何使用ajax执行mysqli查询(准备的语句)

如果您只是使用PHP检查所选值,则可以使用jQuery,即:

$("select").on('change', function() {
  $("#jobsite_price").html("<p>"+$(this).val()+"</p>")
});
<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>

您可以使用纯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;
        }   
    });    
});

最新更新