我有以下PHP:
<?php
$default = 'Select a job role';
$query = "SELECT DISTINCT Job_Title FROM rates";
$result = mysql_query($query);
while($myrow = mysql_fetch_array($result)) {
$action = $myrow['Job_Title'];
echo "<option value='$action'".($action == $default ? ' selected="selected"' : '').">$action</option>\n";
}
?>
我需要将他们从此下拉列表中选择的任何内容存储为变量。显然,如果他们改变了他们的选择,它将继续改变变量。
这背后的原因是我有另一个select语句,其结果取决于此处的选择。 如果不能用PHP完成,那么如果需要,Jquery就是首选。
<select name="job-role">
<option value="J1">J1</option>
<option value="J2">J2</option>
<option value="J3">J3</option>
</select>
答案 0 :(得分:2)
除非您将表单发回页面本身或通过AJAX发送,否则您无法根据下拉列表更改php变量。如果要使用jquery获取值,可以执行类似
的操作$(function(){
var selectValue = $('select[name="job-role"]').val();
$.post('somepage.php', { valueToSend: selectedValue },function(data){
//HTTP-post completed
});
});
<强> somepage.php 强>
if(isset($_POST['valueToSend'])) {
$selectedValue = $_POST['valueToSend'];
//use $selectedValue in your query
}
答案 1 :(得分:1)
要在选择新值时更新变量中的值,请使用jQuery .change
事件处理程序。至于将此新值传递给服务器,您可以使用ajax执行此操作。我在下面添加了一个示例post request。
$(document).ready( function() {
var jobRole = $('select[name="job-role"]').val();
$('select[name="job-role"]').change( function() {
jobRole = $(this).val();
});
//...
$.post("url.php", "jobRole="+ encodeUriComponent(jobRole), function() {
// success
});
});
答案 2 :(得分:0)
尝试this jsfiddle。
$(function(){
var selectValue = $('select[name="job-role"]').val(); //gets default selection
//alert(selectValue);
$('select[name="job-role"]').change(function(){
selectValue = $(this).val(); //gets changed selection
//alert(selectValue);
});
});
答案 3 :(得分:0)
除非你按照约翰的建议去做,否则你不能通过PHP做到这一点。在jQuery中,您需要将更改方法绑定到select
var value = '';
$('select[name="job-role"]').change(function() {
value = $(this).val();
})