我确信我把事情搞得太复杂了,但我试图用引用的 HTML 完成两件事。当用户选择一个选项时,如果满足条件,我想将leaderTable的显示样式从隐藏切换为可见(我已经使用下面的JS成功完成了这一点)
我还想将所选选项的值作为参数传递给 PHP 函数,该函数将设置我可以使用的 $_SESSION 变量。
根据我的理解,我必须使用 AJAX 请求将值传递给 php 脚本,但我不完全理解 AJAX POST 与 GET。
HTML
<select id="rate_type" name="rate_type">
<option value="">Select One</option>
<option value="1">Non-Supervisors</option>
<option value="2">Supervisors</option>
<option value="3">Manager</option>
<option value="4">Director</option>
<option value="5">Sales</option>
<option value="6">Executive</option>
</select>
JS
<script>
window.onload = function() {
var eSelect = document.getElementById('rate_type');
var leaderTable = document.getElementById('leadership');
eSelect.onchange = function() {
if((eSelect.selectedIndex == 2) || (eSelect.selectedIndex == 3) || (eSelect.selectedIndex == 4) || (eSelect.selectedIndex == 5) || (eSelect.selectedIndex == 6)){
leaderTable.style.display= 'block';
} else {
leaderTable.style.display = 'none';
}
}
}
</script>
最佳答案
首先,几乎没有人再编写“原始”JS。使用 JS 库让生活变得轻松。我推荐 jQuery。你需要花几分钟来理解它,但是它可以在1 line中实现AJAX。 .
关于AJAX POST和GET之间的区别,对你来说并不重要。您可以选择其中之一。在您的 PHP 脚本中使用 $_REQUEST[..]
查找参数,您将涵盖这两种情况。
最后,这里有一些想法:
- 如果您需要立即将值传送到服务器,则必须使用 AJAX
- 如果您不介意在向服务器传递值时刷新页面,您可以跳过 AJAX,通过更改 JS 中的 window.location 并将参数包含在 URL 中来完成此操作。 AJAX使用简单,避免刷新,所以比较好..
- 如果不需要立即将值传递给服务器,可以将其作为 cookie 保存在 JS 中(使用
document.cookie
),它会以 cookie 的形式到达服务器用户发出的下一个请求。然后只需在 PHP 中使用$_COOKIE[..]
查找它
关于php - 如何更新 block 元素的样式并将参数传递给 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839026/