Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Successful.ajax()POST不会将变量传递给PHP_Php_Html_Jquery_Ajax_Mysqli - Fatal编程技术网

Successful.ajax()POST不会将变量传递给PHP

Successful.ajax()POST不会将变量传递给PHP,php,html,jquery,ajax,mysqli,Php,Html,Jquery,Ajax,Mysqli,我知道这个问题已经发布了,但我没有看到任何有助于解决我问题的东西 尝试发布表单数据,然后在PHP中使用mysqli,用数据更新SQL表。POST成功并返回代码200。出于某种原因,我假设存在计时问题,但不确定PHP变量总是未定义的。我没有得到任何错误,但是我可以从响应中看到PHP变量是未定义的 我将通过显示_employee.php进行部署。它显示员工姓名的下拉列表。可以选择员工并编辑其信息 emp_edit.php: <?php include '../part1/DBConnectio

我知道这个问题已经发布了,但我没有看到任何有助于解决我问题的东西

尝试发布表单数据,然后在PHP中使用mysqli,用数据更新SQL表。POST成功并返回代码200。出于某种原因,我假设存在计时问题,但不确定PHP变量总是未定义的。我没有得到任何错误,但是我可以从响应中看到PHP变量是未定义的

我将通过显示_employee.php进行部署。它显示员工姓名的下拉列表。可以选择员工并编辑其信息

emp_edit.php:

<?php
include '../part1/DBConnection.php';
if($_SERVER['REQUEST_METHOD'] === 'POST') {
  if (!($result = $conn->prepare("UPDATE employees SET emp_firstName=?, emp_lastName=?, emp_middleName=?, emp_type=?, emp_initialLevel=?, emp_hireDate=?, emp_gender=?, emp_birthDate=?, emp_passwd=? WHERE emp_id=?"))) {
    echo "Prepare failed: (" . $result->errno . ") " . $result->error;
  }

 if (!$result->bind_param("isssssssss", $emp_id, $emp_firstName, $emp_lastName, $emp_middleName, $emp_type, $emp_initialLevel, $emp_hireDate, $emp_gender, $emp_birthDate, $emp_passwd)) {
        echo "Binding parameters failed: (" . $result->errno . ") " . $result->error;
      }


  // populate param vars
  if (isset($_POST['emp_id_edit'])) {
    $emp_id = $_POST['emp_id_edit'];
  }
  if (isset($_POST['emp_firstName_edit'])) {
    $emp_firstName = $_POST['emp_firstName_edit'];
  }
  if (isset($_POST['emp_lastName_edit'])) {
    $emp_lastName = $_POST['emp_lastName_edit'];
  }
  if (isset($_POST['emp_middleName_edit'])) {
    $emp_middleName = $_POST['emp_middleName_edit'];
  }
  if (isset($_POST['emp_type_edit'])) {
    $emp_type = $_POST['emp_type_edit'];
  }
  if (isset($_POST['emp_initialLevel_edit'])) {
    $emp_initialLevel = $_POST['emp_initialLevel_edit'];
  }  
  if (isset($_POST['emp_hireDate_edit'])) {
    $emp_hireDate = $_POST['emp_hireDate_edit'];
  }
  if (isset($_POST['emp_gender_edit'])) {
    $emp_gender = $_POST['emp_gender_edit'];
  }
  if (isset($_POST['emp_birthDate_edit'])) {
    $emp_birthDate = $_POST['emp_birthDate_edit'];
  }
  if (isset($_POST['emp_passwd_edit'])) {
    $emp_passwd = $_POST['emp_passwd_edit'];
  }

  if (!$result->execute()) {
    echo "Execute failed: (" . $result->errno . ") " . $result->error;
  }
  else if($result->execute()) {
    echo "result: " . $emp_id;
  }
  $conn->close();
}
响应标题:

HTTP/1.1 200 OK
Date: Fri, 12 Mar 2021 19:15:41 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Length: 8
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
以下是请求有效负载:

emp_id=1&emp_firstName=123&emp_lastName=123&emp_middleName=123&emp_type=23&emp_initialLevel=123&emp_hireDate=2021-03-12&emp_gender=123&emp_birthDate=2021-03-09&emp_passwd=23

响应主体应在表单中输入ID和密码的值。这些是空的,表示变量未定义没有错误。如果我能提供任何其他信息,请告诉我。

查看您在评论中输入的请求参数:
emp_firstName=123&emp_lastName=123&emp_middleName=123&emp_type=1&emp_initialLevel=2&emp_hireDate=2021-03-10&emp_gender=123&emp_birthDate=2021-03-02&emp_passwd=123。这是请求负载,假设这是您的意思。我也会在PHP中尝试这一行本德·马特11分钟前

我看不到emp_id_edit在$_POST中设置。这就是代码返回结果的原因:

我相信您可能没有在编辑代码中发送它:

$document.readyfunction{ $'emp_edit'。单击,函数{ $emp_add.removeAttrdisabled; $emp_edit.attr已禁用,已禁用; $input_fields.empty; var input_fields=IDFirst NAME中间名姓氏类型初始级别雇用日期性别出生日期密码 $input_字段。追加input_字段; $'edit_btn'。单击,函数e{ var emp_id=$selection.val; var emp_firstName=$'emp_firstName_edit'.val; var emp_lastName=$'emp_lastName_edit'.val; var emp_middleName=$'emp_middleName_edit'.val; var emp_type=$'emp_type_edit'.val; var emp_initialLevel=$'emp_initialLevel_edit'.val; var emp_hireDate=$'emp_hireDate_edit'.val; var emp_gender=$'emp_gender_edit'.val; var emp_birthDate=$'emp_birthDate_edit'.val; var emp_passwd=$'emp_passwd_edit'.val; 如果emp_firstName!=&emp_lastName!=&emp_initialLevel!=&emp_hireDate!=&emp_性别!=&emp_生日!={ e、 防止违约 $.ajax{ url:emp_edit.php, 类型:POST,, 数据:{ emp_id_编辑:emp_id, emp_firstName:emp_firstName, emp_lastName:emp_lastName, emp_middleName:emp_middleName, emp_类型:emp_类型, emp_initialLevel:emp_initialLevel, emp_hireDate:emp_hireDate, emp_性别:emp_性别, emp_生日:emp_生日, emp_passwd:emp_passwd }, cache:false, 成功:功能{ $emp_edit.removeattrIsabled; $input_fields.empty; $selection选项:selected.textemp_id++emp_firstName++emp_lastName; $'input_fields'。追加'已成功编辑的数据!

'; } }; } 否则{ 警告“请填写所有必填字段!”; } }; };
欢迎使用Stack Overflow。您需要在浏览器中查看您的POST有效负载,以查看值是否如预期的那样通过。然后,我建议在PHP中使用var_export$\u POST作为测试,以查看PHP得到了什么。实际上,打开浏览器开发工具并查找请求响应。您已经获得了请求头,您还可以看到e包含POST字段数据的请求主体?应该在那里。emp_firstName=123&emp_lastName=123&emp_middleName=123&emp_type=1&emp_initialLevel=2&emp_hireDate=2021-03-10&emp_gender=123&emp_birthDate=2021-03-02&emp_passwd=123。这是请求有效负载,假设这是您的意思。我也会在PHP中尝试这一行。响应是payload应为:结果:[id]-[passwd]但由于变量为空,我只得到结果:-定义了变量,但其中没有数据$drop_list.append;是不必要的。您正在附加DOM元素,而不是连接HTML。执行此操作后,我得到了相同的结果。请更新上面的代码,以便我们可以查看绑定参数是否使用引用,因此在设置e变量。好吧,它已经更新了。我也是这么想的,@Barmar
$(document).ready(function () {
    $.ajax({
        url: 'ajaxfile.php',
        type: 'get',
        dataType: 'JSON',
        success: function (response) {
            var len = response.length;
            var output = "<select id = 'selection'>"
            for (var i = 0; i < len; i++) {
                var emp_id = response[i].emp_id;
                var emp_firstName = response[i].emp_firstName;
                var emp_lastName = response[i].emp_lastName;
                output += "<option value='" + emp_id + "' name='" + emp_id + "'>" + emp_id + " " + emp_firstName + " " + emp_lastName + "</option>";
            }
            $("#drop_list").append(output);
            $("#drop_list").append("</select>");
        }
    });
});

$(document).ready(function () {
    $('#emp_add').on('click', function () {
        $("#emp_edit").removeAttr("disabled");
        $("#emp_add").attr("disabled", "disabled");
        $("#input_fields").empty();
        var input_fields = "<form id='emp_add_form' name='form1' method='post'><label for='emp_firstName_add'>First Name</label><input type='text' class='input_fields' id='emp_firstName_add' name='emp_firstName_add'></br><label for='emp_middleName_add'>Middle Name</label><input type='text' class='input_fields' id='emp_middleName_add' name='emp_middleName_add'></br><label for='emp_lastName_add'>Last Name</label><input type='text' class='input_fields' id='emp_lastName_add' name='emp_lastName_add'></br><label for='emp_type_add'>Type</label><input type='text' class='input_fields' id='emp_type_add' name='emp_type_add'></br><label for='emp_initialLevel_add'>Initial Level</label><input type='text' class='input_fields' id='emp_initialLevel_add' name='emp_initialLevel_add'></br><label for='emp_hireDate_add'>Hire Date</label><input type='date' class='input_fields' id='emp_hireDate_add' name='emp_hireDate_add'></br><label for='emp_gender_add'>Gender</label><input type='text' class='input_fields' id='emp_gender_add' name='emp_gender_add'></br><label for='emp_birthDate_add'>Birth Date</label><input type='date' class='input_fields' id='emp_birthDate_add' name='emp_birthDate_add'></br><label for='emp_passwd_add'>Password</label><input type='text' class='input_fields' id='emp_passwd_add' name='emp_passwd_add'></br><input type='button' name='add_btn' value='Add to database' id='add_btn'></form>"
        $("#input_fields").append(input_fields);

        $('#add_btn').on('click', function (e) {
            var emp_firstName = $('#emp_firstName_add').val();
            var emp_lastName = $('#emp_lastName_add').val();
            var emp_middleName = $('#emp_middleName_add').val();
            var emp_type = $('#emp_type_add').val();
            var emp_initialLevel = $('#emp_initialLevel_add').val();
            var emp_hireDate = $('#emp_hireDate_add').val();
            var emp_gender = $('#emp_gender_add').val();
            var emp_birthDate = $('#emp_birthDate_add').val();
            var emp_passwd = $('#emp_passwd_add').val();

            if (emp_firstName != "" && emp_lastName != "" && emp_initialLevel != "" && emp_hireDate != "" && emp_gender != "" && emp_birthDate != "") {
                e.preventDefault()
                $.ajax({
                    url: "emp_add.php",
                    type: "POST",
                    data: {
                        emp_firstName: emp_firstName,
                        emp_lastName: emp_lastName,
                        emp_middleName: emp_middleName,
                        emp_type: emp_type,
                        emp_initialLevel: emp_initialLevel,
                        emp_hireDate: emp_hireDate,
                        emp_gender: emp_gender,
                        emp_birthDate: emp_birthDate,
                        emp_passwd: emp_passwd
                    },
                    cache: false,
                    success: function (dataResult) {
                        $("#emp_add").removeAttr("disabled");
                        $("#input_fields").empty();
                        $('#input_fields').append('<p>Data added successfully !</p>');
                    }
                });
            }
            else {
                alert('Please fill all the required fields !');
            }
        });
    });
});

$(document).ready(function () {
    $('#emp_edit').on('click', function () {
        $("#emp_add").removeAttr("disabled");
        $("#emp_edit").attr("disabled", "disabled");
        $("#input_fields").empty();
        var input_fields = "<form id='emp_edit_form' name='form2' method='post'><label for='emp_id_edit'>ID</label><input type='text' class='input_fields' id='emp_id_edit' name='emp_id_edit' value=" + $('#selection').val() + " readonly></br><label for='emp_firstName_edit'>First Name</label><input type='text' class='input_fields' id='emp_firstName_edit' name='emp_firstName_edit'></br><label for='emp_middleName_edit'>Middle Name</label><input type='text' class='input_fields' id='emp_middleName_edit' name='emp_middleName_edit'></br><label for='emp_lastName_edit'>Last Name</label><input type='text' class='input_fields' id='emp_lastName_edit' name='emp_lastName_edit'></br><label for='emp_type_edit'>Type</label><input type='text' class='input_fields' id='emp_type_edit' name='emp_type_edit'></br><label for='emp_initialLevel_edit'>Initial Level</label><input type='text' class='input_fields' id='emp_initialLevel_edit' name='emp_initialLevel_edit'></br><label for='emp_hireDate_edit'>Hire Date</label><input type='date' class='input_fields' id='emp_hireDate_edit' name='emp_hireDate_edit'></br><label for='emp_gender_edit'>Gender</label><input type='text' class='input_fields' id='emp_gender_edit' name='emp_gender_edit'></br><label for='emp_birthDate_edit'>Birth Date</label><input type='date' class='input_fields' id='emp_birthDate_edit' name='emp_birthDate_edit'></br><label for='emp_passwd_edit'>Password</label><input type='text' class='input_fields' id='emp_passwd_edit' name='emp_passwd_edit'></br><input type='submit' name='edit_btn' value='Edit Data' id='edit_btn'></form>"
        $("#input_fields").append(input_fields);

        $('#edit_btn').on('click', function (e) {
            var emp_id = $("#selection").val();
            var emp_firstName = $('#emp_firstName_edit').val();
            var emp_lastName = $('#emp_lastName_edit').val();
            var emp_middleName = $('#emp_middleName_edit').val();
            var emp_type = $('#emp_type_edit').val();
            var emp_initialLevel = $('#emp_initialLevel_edit').val();
            var emp_hireDate = $('#emp_hireDate_edit').val();
            var emp_gender = $('#emp_gender_edit').val();
            var emp_birthDate = $('#emp_birthDate_edit').val();
            var emp_passwd = $('#emp_passwd_edit').val();

            if (emp_firstName != "" && emp_lastName != "" && emp_initialLevel != "" && emp_hireDate != "" && emp_gender != "" && emp_birthDate != "") {
                e.preventDefault()
                $.ajax({
                    url: "emp_edit.php",
                    type: "POST",
                    data: {
                        emp_firstName: emp_firstName,
                        emp_lastName: emp_lastName,
                        emp_middleName: emp_middleName,
                        emp_type: emp_type,
                        emp_initialLevel: emp_initialLevel,
                        emp_hireDate: emp_hireDate,
                        emp_gender: emp_gender,
                        emp_birthDate: emp_birthDate,
                        emp_passwd: emp_passwd
                    },
                    cache: false,
                    success: function () {
                        $("#emp_edit").removeAttr("disabled");
                        $("#input_fields").empty();
                        $("#selection option:selected").text(emp_id + " " + emp_firstName + " " + emp_lastName);
                        $('#input_fields').append('<p>Data edited successfully!</p>');
                    }
                });
            }
            else {
                alert('Please fill all the required fields !');
            }
        });
    });
});
POST /group12_project/part2/emp_edit.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 167
Origin: http://localhost
Connection: keep-alive
Referer: http://localhost/group12_project/part2/display_employee.php
Cookie: PHPSESSID=n5tds5287ctojoils5r6h21blb
HTTP/1.1 200 OK
Date: Fri, 12 Mar 2021 19:15:41 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Length: 8
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
emp_id=1&emp_firstName=123&emp_lastName=123&emp_middleName=123&emp_type=23&emp_initialLevel=123&emp_hireDate=2021-03-12&emp_gender=123&emp_birthDate=2021-03-09&emp_passwd=23