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