Javascript 将两个变量从php传递到ajax,然后返回到php

Javascript 将两个变量从php传递到ajax,然后返回到php,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我是ajax新手,所以对ajax语法了解不多。虽然我在这里尝试将变量从php传递到ajax,然后再返回到php。当涉及到两个变量时,我能够用一个变量完成它,我感到困惑。我甚至不知道在谷歌上搜索什么才能得到我的问题的答案。因此,我将在这里简要介绍我的php代码。addnewbug.php 第一个函数工作正常,因为它从程序中获取值并将其传递给addnewbug1.php,addnewbug1.php获取程序名并生成新的选择框,用于发布和版本,然后替换为div release和division ver

我是ajax新手,所以对ajax语法了解不多。虽然我在这里尝试将变量从php传递到ajax,然后再返回到php。当涉及到两个变量时,我能够用一个变量完成它,我感到困惑。我甚至不知道在谷歌上搜索什么才能得到我的问题的答案。因此,我将在这里简要介绍我的php代码。addnewbug.php

第一个函数工作正常,因为它从程序中获取值并将其传递给addnewbug1.php,addnewbug1.php获取程序名并生成新的选择框,用于发布和版本,然后替换为div release和division versionor number

这是第一个函数完美工作的文件-addnewbug1.php

addnewbug2.php也是它正在使用的新文件,它是-

 require "./db.php";
 echo "<select class='release_select' id='release1'><option></option>";
 $programname = $_GET['program_name'];
 $programnumber = $_GET['program_number'];
 $sql1 = 'SELECT DISTINCT program_release FROM program WHERE program_name="'. $programname .'" and program_number=' . $programnumber;

 $result1 = db($sql1);
 while ($row1 = $result1->fetch_assoc()) {
$program_release = $row1['program_release'];
echo '<option name ="' . $program_release . '">' . $program_release . '</option>';
 }
 echo "</select>";
 ?>

json_encode非常适合使用ajax传输php变量

差不多

//您的ajax呼叫接收器页面-:您的\u链接\u用于\u ajax.php

你可以像这样读

这段代码将显示在html页面上

    $.post('your_link_for_ajax', post_data, function(response){  

                    //load json data from server and output message     
                    if(response.type == 'error')
                    {
                        output = '<div class="alert alert-danger">'+response.text+'</div>';
                    }else{
                        output = '<div class=" alert alert-success">'+response.address+'</div>';
                        $('#stateIdContact').html(response.table_record);

                    }

                }, 'json');

如果我理解正确,您的初始问题是在AJAX调用中传递多个变量

您可以这样构造URL:

var val2 = $("#program_number").val();
var val1 = $("#program").val();
$.get("addnewbug2.php?program_number="+val2+"&program_name="+val1)

谢谢你的回复,我用AngularJS解决了我的问题,这是我发帖后开始阅读的。这个问题背后我的主要目的是使用其他第一个选择框中的值填充第二个选择框和第三个选择框,并在完成新填充第二个选择框中的值时填充。然后使用第二个选择框更改第三个选择框中的值。最后一点,反之亦然。将唯一筛选器应用于选择框,而不移动到下一页。 下面是Addnewbug.php的代码简化形式-

当然,我用了一些其他的stackexchange问题来解决问题。 对于在代码中导入的表,我使用了这个程序-


我和你在这个页面上遇到的问题一样:,我有两个不同的php文件,一个处理select文件,另一个处理数据库sql,首先我传递一个值,用户从第一个select中选择该值,该值更新第二个select,选择second select应该更新third select,它仍然是空的。我不知道我的问题是什么。我想我会将第一个ajax的值发送到另一个php文件,当我将其返回用于第二个ajax调用时,第一个值将消失。

是的,它正在工作。我不再需要答案。我已经用AngularJS解决了这个问题,我尝试过发布答案,但我的帐户不允许发布答案。如果有人需要这个问题的答案,请pm我。感谢您对我如何使用该或链接的任何评论。我无法理解它,因为数组中使用的部件类型、地址和表记录将是我需要传递的变量,以及我应该在哪里使用die$output used。我会试着用它,虽然我试过了,但没用。即使它正在工作,我也无法测试它,直到program_name的更改功能开始工作,我试图删除旧的选择框“release_select”。
$.get("addnewbug2.php?program_number="+val2, {program_name: $("#program").val()})
 require "./db.php";
 echo "<select class='release_select' id='release1'><option></option>";
 $programname = $_GET['program_name'];
 $programnumber = $_GET['program_number'];
 $sql1 = 'SELECT DISTINCT program_release FROM program WHERE program_name="'. $programname .'" and program_number=' . $programnumber;

 $result1 = db($sql1);
 while ($row1 = $result1->fetch_assoc()) {
$program_release = $row1['program_release'];
echo '<option name ="' . $program_release . '">' . $program_release . '</option>';
 }
 echo "</select>";
 ?>
  function db($sql){
  //Check for connection variable already set
  if(!isset($conn)){
      //Database Connectivity - ip, username, password, database name
      $conn = new mysqli("i have filled this correctly");
  }

//Check Connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$result = mysqli_query($conn, $sql);
mysqli_close($conn);
return($result);
 }
    $output =     json_encode(array('type'=>'success','address'=>$address,'table_record'=>$table_record));
    die($output);
    $.post('your_link_for_ajax', post_data, function(response){  

                    //load json data from server and output message     
                    if(response.type == 'error')
                    {
                        output = '<div class="alert alert-danger">'+response.text+'</div>';
                    }else{
                        output = '<div class=" alert alert-success">'+response.address+'</div>';
                        $('#stateIdContact').html(response.table_record);

                    }

                }, 'json');
var val2 = $("#program_number").val();
var val1 = $("#program").val();
$.get("addnewbug2.php?program_number="+val2+"&program_name="+val1)
              <!DOCTYPE html>
          <html >
          <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
          <script src= "https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.4/angular-filter.js"></script>
          <body>

          <div ng-app="myApp" ng-controller="customersCtrl">

          <select ng-model="selectProgram">
          <option></option>
          <option ng-repeat="x in programes | unique: 'prognumber'" name=""{{x.progname}}"">{{ x.progname }}</option>
          </select>
          <select ng-model="selectNumber">
          <option></option>
          <option ng-repeat="x in programes | filterBy: ['progname']:selectProgram | filterBy: ['progrelease']:selectRelease | unique: 'prognumber'" name=""{{x.prognumber}}"">{{ x.prognumber }}</option>
          </select>
          <select ng-model="selectRelease">
          <option></option>
          <option ng-repeat="x in programes | filterBy: ['progname']:selectProgram | filterBy: ['prognumber']:selectNumber | unique: 'progrelease'" name=""{{x.progrelease}}"">{{ x.progrelease }}</option>
          </select> 
          </div>

          <script>
          var app = angular.module('myApp', ['angular.filter']);
          app.controller('customersCtrl', function($scope, $http) {
             $http.get("db/program_db.php")
             .success(function (response) {$scope.programes = response.records;});
          });
          </script>

          </body>
          </html>
    <?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    if(!isset($conn)){
            //Database Connectivity - ip, username, password, database name
        $conn = new mysqli("*connection parameters*");
     }
    if ($conn->connect_error) {
         die("Connection failed: " . $conn->connect_error);
    }
    $result = mysqli_query($conn, "SELECT program_name, program_number,program_release FROM program");
    $outp = "";
    while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
        if ($outp != "") {$outp .= ",";}
        $outp .= '{"progname":"'  . $rs["program_name"] . '",';
        $outp .= '"prognumber":"'   . $rs["program_number"]        . '",';
        $outp .= '"progrelease":"'. $rs["program_release"]     . '"}';
    }
    $outp ='{"records":['.$outp.']}';
    $conn->close();

    echo($outp);
    ?>