我有2个删除列表,其中第一个删除列表是使用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;
});
});
现在,我想从这两个下拉列表中取出2个选定的值并在文本框中显示一个值,所以我尝试了以下内容:
$(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:“despirator”}
VM227:1未捕获的SyntaxError:意外的标记&lt;
感谢任何帮助
修改 纠正一些行后:
var formData = { 'selectedValue' : $( "#sale_type_2 option:selected" ).val(),
'selectedValue2' : $( "#sale_details_2 option:selected" ).val() };
和
$init_data = $_POST['selectedValue'];
$init_data2 = $_POST['selectedValue2'];
我有同样的错误,这是一张图片:
答案 0 :(得分:2)
在formData中,您要发送值selectedValue
&amp; selectedValue2
,但在php中,您尝试获取selectedValue2
&amp; selectedValue3
document.ready 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]);
使用secondDropdown.val(obj[prop]);
,因为他正在访问文本框。