我有两个下拉列表,第一个下拉列表是使用AJAX从MySQL获取数据,下面是脚本:
$(document).ready(function() {
$('#sale_type').change(function() {
var formData = { 'selectedValue' : $( "#sale_type option:selected" ).val() };
console.log(formData);
$.ajax({
type: 'POST',
url: 'getTypeDetails.php',
data: formData,
success: function(data){
var obj = jQuery.parseJSON(data);
var secondDropdown = $("#sale_details");
secondDropdown.html('');
var init = 'إختر';
secondDropdown.append("<option>" + init + "</option>");
for (var prop in obj) {
secondDropdown.append("<option>" + obj[prop] + "</option>");
}
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
});
});
下面是PHP代码(getType…):
<?php
require_once('../include/global.php');
$init_data = $_POST['selectedValue'];
// Connect to database
// Use the data to get the new information
$query = "SELECT * FROM purchases WHERE sale_type = :data";
// MySQL
$results = $conn->prepare($query);
$results->bindValue(":data", $init_data);
$exec = $results->execute();
$res = $results->fetchAll();
$data = array();
$i = 0;
foreach($res as $row){
$data[$i] = $row['sale_details'];
$i++;
}
echo json_encode($data);
?>
现在,数据通常使用第一个下拉列表中的选定值显示在第二个下拉列表中,下面是脚本:
$(document).ready(function() {
$('#sale_type_2').change(function() {
var formData = { 'selectedValue2' : $( "#sale_type_2 option:selected" ).val() };
console.log(formData);
$.ajax({
type: 'POST',
url: 'getTypeDetails_2.php',
data: formData,
success: function(data){
var obj = jQuery.parseJSON(data);
var secondDropdown = $("#sale_details_2");
secondDropdown.html('');
var init = 'إختر';
secondDropdown.append("<option>" + init + "</option>");
for (var prop in obj) {
secondDropdown.append("<option>" + obj[prop] + "</option>");
}
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
});
});
现在,我想从这两个下拉列表中选择两个值,并在文本框中显示一个值,因此我尝试了以下操作:
$(document).ready(function() {
$('#sale_details_2').change(function() {
var formData = { 'selectedValue' : $( "#sale_type_2 option:selected" ).val(),
'selectedValue2' : $( "#sale_details_2 option:selected" ).val() };
console.log(formData);
$.ajax({
type: 'POST',
url: 'getTypeDetails_3.php',
data: formData,
success: function(data){
var obj = jQuery.parseJSON(data);
var secondDropdown = $("#price_2");
secondDropdown.html('');
for (var prop in obj) {
secondDropdown.text(obj[prop]);
}
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
});
});
下面是php代码:
<?php
require_once('../include/global.php');
$init_data = $_POST['selectedValue2'];
$init_data2 = $_POST['selectedValue3'];
// Connect to database
// Use the data to get the new information
$query = "SELECT * FROM purchases WHERE sale_type = :data AND sale_details = :data2";
// MySQL
$results = $conn->prepare($query);
$results->bindValue(":data", $init_data);
$results->bindValue(":data2", $init_data2);
$exec = $results->execute();
$res = $results->fetchAll();
$data = array();
$i = 0;
foreach($res as $row){
$data[$i] = $row['price'];
$i++;
}
echo json_encode($data);
?>
但没有得到任何结果,我有以下控制台错误:
对象{selectedValue:“BMW”,selectedValue2:“destinator”}
VM227:1未捕获的语法错误:意外的标记<
如有任何帮助,我们将不胜感激
编辑
在将某些行更正为:
var formData = { 'selectedValue' : $( "#sale_type_2 option:selected" ).val(),
'selectedValue2' : $( "#sale_details_2 option:selected" ).val() };
以及:
$init_data = $_POST['selectedValue'];
$init_data2 = $_POST['selectedValue2'];
我也有同样的错误,这里有一张图片:
最佳答案
在formData中,您正在发送值selectedValue
&selectedValue2
,但在php中,您尝试获取selectedValue2
&selectedValue3
文件准备3
var formData = { 'selectedValue' : $( "#sale_type_2 option:selected" ).val(),
'selectedValue2' : $( "#sale_details_2 option:selected" ).val() };
PHP2级
$init_data = $_POST['selectedValue2'];
$init_data2 = $_POST['selectedValue3'];
编辑
OP找到它,而不是使用
secondDropdown.text(obj[prop]);
,因为他正在访问一个文本框。关于javascript - 无法使用从2个下拉列表中选择的值来获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34963467/