-1

我有以下 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";
}       
?>

我需要将他们从此下拉列表中选择的任何内容存储为变量。显然,如果他们改变他们的选择,它将不断改变变量。

这背后的原因是我有另一个选择语句,其结果取决于此处的选择。如果仅使用 PHP 无法完成,那么如果需要,Jquery 是首选。

<select name="job-role">
<option value="J1">J1</option>
<option value="J2">J2</option>
<option value="J3">J3</option>
</select>
4

4 回答 4

2

您不能根据下拉列表更改 php 变量,除非您将表单发布回页面本身或通过 AJAX 发送。如果您想使用 jquery 获取值,您可以执行类似的操作

$(function(){

    var selectValue = $('select[name="job-role"]').val();

    $.post('somepage.php', { valueToSend: selectedValue },function(data){
        //HTTP-post completed
    });        

});

某页.php

if(isset($_POST['valueToSend'])) {

    $selectedValue = $_POST['valueToSend'];

    //use $selectedValue in your query 
}
于 2012-10-03T14:06:53.610 回答
1

要在选择新值时更新变量中的值,请使用 jQuery.change事件处理程序。至于将这个新值传达给服务器,您可以使用ajax来做到这一点。我在下面包含一个示例发布请求

$(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
    });
});
于 2012-10-03T14:15:54.327 回答
0

试试这个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);
});
});​
于 2012-10-03T14:13:00.813 回答
0

除非您按照 Johan 的建议进行操作,否则您无法通过 php 进行操作。在 jQuery 中,您需要将更改方法绑定到您的select

var value = '';
$('select[name="job-role"]').change(function() {
    value = $(this).val();
})

小提琴

于 2012-10-03T14:13:13.870 回答