我想要从下拉列表中读取值的解决方案,并将其发送到同一页面使用GET方法。我认为ajax和jquery会实现这个目标。
如果我选择住院病人'从下拉列表中然后它会在同一页面上自动显示。
<div id="div_for_patienttype">
Choose patient type:<select id="select_patient_id"name="patient_type">
<option >Select patient type</option>
<option value="InPatient">InPatient</option>
<option value="OutPatient">OutPatient</option>
</select>
</div>
我对此进行了编码并且工作正常,但有一个问题是,当我选择患者类型时,页面会刷新,下拉值是“选择患者类型&#39;。我实际上希望下拉值保持相同,即选择。” / p>
代码:
$(document).ready(function(){
$("#select_patient_id").change(function(){
var selected_patient=$(this).val();
sendType(selected_patient);
});
});
function sendType(type)
{
$.ajax({
type:"GET",
url:"dispres.php",
data:({patientType:type}),
success:function(success)
{
window.location.href="dispres.php?patientType="+type;
}
});
}
我怎样才能优化这个jquery和ajax代码?
答案 0 :(得分:3)
读取下拉值的基本jQuery:
var patient_type = $('select[name="patient_type"]').val(); // value on submit
基本获取请求:
$.get( "my_page.php", { patient_type : patient_type } );
答案 1 :(得分:1)
不确定你真正想要的是什么。我相信你想要调用web方法(服务)的下拉选择的更改。
//代码尚未经过测试
$(document).ready(function(){
$("select[name=patient_type]").change(function(){
var selected_patient = $("select[name=patient_type]").val();
$.ajax({
type: "GET",
url: "process-request.php?patient="+selected_patient
}).done(function(data){
//do something
});
});
});
或者你可以写
$(document).ready(function(){
$("select[name=patient_type]").change(function(){
var selected_patient = $("select[name=patient_type]").val();
$.ajax({
type: "GET",
url: "process-request.php",
data:{patient:selected_patient}
}).done(function(data){
//do something
});
});
});
在PHP方面基于您使用的框架只需获取查询字符串值
答案 2 :(得分:0)
假设您尝试使用选项值作为参数发出GET请求
$('select[name="patient_type"]').on('change', function(){
var selected = $('select[name="patient_type"]').find(':selected').val();
$.ajax({
url: window.location.href + '?' + selected,
type: 'GET'
success:function(data) {
handleData(data);
}
});
});
function handleData(data){
// do something here with the data obtained from your get request
}