我想使用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>";
?>
答案 0 :(得分:5)
您需要表单标签和POST方法,同时为select选择一个name属性。你不能单独依赖id
,而不是没有JS / Ajax。
旁注:我从转义的引号中删除了\
,因为它们不在您发布的代码中的echo语句/ PHP中。这将抛出错误/警告,例如&#34;未加引号的属性&#34;。如果您在echo声明中使用它,那么您需要重新添加它们。
\"
仅在echo / PHP内部进行。附加说明:
// 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,即:
$("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;
答案 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;
}
});
});