Php 脚本/函数会忘记所选ID

Php 脚本/函数会忘记所选ID,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试使用两个函数从数据库中获取多个数据。第一个函数工作正常,但当第二个函数开始运行时,第二个函数似乎忘记了ID。有人能帮我解决这个问题吗 首先,这是我的PHP脚本 <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "database"; // Create connection $conn = n

我正在尝试使用两个函数从数据库中获取多个数据。第一个函数工作正常,但当第二个函数开始运行时,第二个函数似乎忘记了ID。有人能帮我解决这个问题吗

首先,这是我的PHP脚本

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM cus";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     echo "<select class='form-control select2' name='cus_id' id='cus_id' onChange='getCus(this.value)' style='width: 100%;'>";
              echo "<option selected disabled hidden value=''></option>";
     // output data of each row
     while($row = $result->fetch_assoc()) {
                      echo "<option value='" . $row["cus_id"]. "'>" . $row["cus_id"].  " | " . $row["cus_name"]. "</option>";
     }                   
echo "</select>";
} else {
     echo "0 results";
}

$conn->close();

?>
此函数运行脚本
get5.php
,并
get5.php
cus\u name
发送到
cus\u name
文本字段。到目前为止,一切正常。函数
getCus
启动一个名为
getCus2
的新函数。此函数如下所示:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script> 
function getCus2(response) { 

var selectedItem = jQuery('#cus_id option:selected').val();

jQuery.ajax({ 
url: 'get6.php', 
method: 'POST', 
data: {'cus_id' : response},
success: function(response){ 
    jQuery('#cus_id').val(response); 
        jQuery('#cus_cou').val(response);

}, 
error: function (request, status, error) { 
alert(request.responseText); 
}, 
}); 
} 
</script>
我看不出有什么问题,也看不出是什么原因导致我的脚本忘记了所选的
cus\u id
。有人能看出哪里出了问题吗

更新1:

cus_id HTML元素:
echo”“;
回声“;
//每行的输出数据
而($row=$result->fetch_assoc()){
echo“$row[“cus_id”]。”|“$row[“cus_name”]。”;
}                   
回声“;

您需要将元素传递给

getCus2(selectedItem)
但是你调用它时没有参数

您可以重构它,而不是不使用的selectedItem,直接从getCus发送结果,因此在getCus2中,您不需要从DOM获取结果:

在getCus中:

getCus2(response)
在getCus2中:

data: {'cus_id' : selectedItem},
更新:尝试删除改变do#cus#id值的行,它似乎不需要,可能会破坏它,因为您在第一次响应中设置了一些错误的值。从两个功能中删除该行:

jQuery('#cus_id').val(response); 
应该是这样的:

function getCus2() { 
    var selectedItem = jQuery('#cus_id option:selected').val();
    console.log("getCus2 before ajax", jQuery('#cus_id').val());
    jQuery.ajax({ 
        url: 'get6.php', 
        method: 'POST', 
        data: {'cus_id' : jQuery('#cus_id').val()},
        success: function(response){ 
            console.log("getCus2 after ajax", jQuery('#cus_id').val());
            jQuery('#cus_cou').val(response);
        }, 
        error: function (request, status, error) { 
            alert(request.responseText); 
        }, 
    }); 
} 

请张贴一个最小的,完整的,可验证的例子,你的问题,我已经张贴了整个脚本,让你可以明白我的意思。我不认为问题出在
get5.php
get6.php
之间有什么不同。我发布它是因为它使我的故事完整。你是说类似于
getElementById
的东西,我不是说,它在你发布的代码中,但在函数中没有使用;)但是它给出了发送第一个ajax的结果的想法,因此在更改
get6之后,它不需要DOM来“传递”它。php
不再运行请参阅我的第一篇文章中的文章。第二篇文章(POST get6.php)不再发表了。你能用我的修改将问题中的代码更新到你现在拥有的代码吗?另外请添加console.log(“getCus”,response);,console.log(“getCus2”,响应);到Ajax回调,并发布控制台中的输出显示的内容
data: {'cus_id' : selectedItem},
jQuery('#cus_id').val(response); 
function getCus2() { 
    var selectedItem = jQuery('#cus_id option:selected').val();
    console.log("getCus2 before ajax", jQuery('#cus_id').val());
    jQuery.ajax({ 
        url: 'get6.php', 
        method: 'POST', 
        data: {'cus_id' : jQuery('#cus_id').val()},
        success: function(response){ 
            console.log("getCus2 after ajax", jQuery('#cus_id').val());
            jQuery('#cus_cou').val(response);
        }, 
        error: function (request, status, error) { 
            alert(request.responseText); 
        }, 
    }); 
}