gpt4 book ai didi

javascript - AJAX inside $.when 给出返回字符串的第一个字符

转载 作者:行者123 更新时间:2023-12-01 05:25:31 25 4
gpt4 key购买 nike

我使用 $.when 调用 AJAX,等待 ajax 完成并返回以处理内部的下一个 ajax。

这就是 $.when 调用发生的地方:

function loadAllData(){
$.when(getCreditorID()).done(function(a1){
console.log("cx id is : " + parseFloat(a1[0])); //this is in the attached screen shot
var urlx = "functions/getCustomerData.php";
$.post(
urlx,
{
selectedValue: a1[0],
},
function(data) {
$("#payduedate").val(data[0].duedate);
document.getElementById('portcode').value = data[0].portcode;
document.getElementById('currencycode').value = data[0].currencycode;
document.getElementById('convertion').value = data[0].conversion;
},
"json"
);
});
}

上面的代码正在调用下面的ajax方法函数:

function getCreditorID(){
id = "";
var creditorcodex = document.getElementById('creditorcode').value;
// console.log("getCreditorID input: " + creditorcodex);
var urlx = "functions/getCreditorID.php";
return $.ajax({
type: 'POST',
url: urlx,
data: {
creditorcode: creditorcodex,
},
success: function(data) {
console.log("Result : "+data); //this is in the attached screen
}
});
}

上面的函数调用 getCreditorID.php 来获取数据:getCreditorID.php:

<?php
include '../config/dbConn.php';

$creditorcode = $_POST["creditorcode"];
// $creditorcode = $_GET["creditorcode"];
$result="";

$sql = "SELECT intCustomerID FROM lms.tblcustomers WHERE varCustomerName='".$creditorcode."';";

mysql_select_db('$dbname');
$retval = mysql_query( $sql, $conn );

if(! $retval )
{
$result=-999;
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
$result=$row["intCustomerID"];
}
echo $result;
mysql_close($conn);
?>

问题是:如果 getCreditorID.php 返回的是“44”,则 getCreditorID() 函数内的 console.log("Result : "+data); 将在控制台中输出为“Result : 44”,并且工作正常。但在 loadAllData() 函数中返回相同的函数,并使用为下一个 ajax 返回的值。在这里,如果我们使用 console.log("cx id is : "+ parseFloat(a1[0])); 打印返回值,输出是“4”,应该是“44”。这意味着它仅将第一个字符作为输出并忽略其余字符。

运行控制台的屏幕截图: screen shot of running code

请找到出路。

最佳答案

在函数 loadAllData() 中,使用 a1 而不是 a1[0] 并相应地更新代码

function loadAllData(){
$.when(getCreditorID()).done(function(a1){
console.log("cx id is : " + parseFloat(a1)); // did correction here
var urlx = "functions/getCustomerData.php";
$.post(
urlx,
{
selectedValue: a1[0],
},
function(data) {
$("#payduedate").val(data[0].duedate);
document.getElementById('portcode').value = data[0].portcode;
document.getElementById('currencycode').value = data[0].currencycode;
document.getElementById('convertion').value = data[0].conversion;
},
"json"
);
});
}

关于javascript - AJAX inside $.when 给出返回字符串的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40017719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com