我有两个下拉列表,第一个下拉列表是使用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'];

我也有同样的错误,这里有一张图片:
javascript - 无法使用从2个下拉列表中选择的值来获取值-LMLPHP

最佳答案

在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/

10-12 00:13
查看更多