这个问题已经困扰我2天了,运气不好,我想我应该在这里问一下。我遇到的问题是,从ajax请求中获得字符串并将其保存到一个变量后,警报显示正确"1/2/3/4",但是当我使用var array = variable.split('/');
并尝试访问数组内容时,它只显示数组长度为1,而一个是空白的。在字符串之前使用警告,以确保字符串包含所需的内容。任何帮助都会很感激。
var Cid = calEvent.Cid;
$(".titleU").val(calEvent.title);
$('.startDateU').val($.fullCalendar.formatDate(calEvent.start, "yyyy-MM-dd HH:mm"));
$('.endDateU').val($.fullCalendar.formatDate(calEvent.end, "yyyy-MM-dd HH:mm"));
$(".descriptionU").val(calEvent.description);
$(".clientU").val(calEvent.clientName);
$(".workOrderU").val(calEvent.workOrderID);
$(".jobLocationU").val(calEvent.eventLocation);
// For loop for adding employee to update panel
var workOrderEmployeesA = ""; // Update form
$.ajax({
type: "POST",
url: "<?php echo base_url('scripts/phpScripts/getEmployeesCID.php');?>",
data: {Cid: Cid},
datatype: "html",
success: function(json){
workOrderEmployeesA = $.trim(json).substring(0, json.length -1);
alert(workOrderEmployeesA);
}
});
var workOrderEmployeesB = workOrderEmployeesA.toString().split('/');
for(var i=0;i<workOrderEmployeesB.length;i++){
alert(workOrderEmployeesB[i]);
}
PHP: $result = mysqli_query($con,"SELECT * FROM employeeCalendar WHERE CalendarID='$_POST[Cid]'");
$counter = 0;
while($row = mysqli_fetch_array($result)){
echo $row['EmployeeID'];
if($counter == mysqli_num_rows($result)){
}else{
echo "/";
}
$counter++;
}
mysqli_close($con);
下面的代码可以正常工作,但不确定它有什么不同,会妨碍正常的功能。
var workOrderEmployeesB = "1/2/3/4/5".split('/');
for(var i=0;i<workOrderEmployeesB.length;i++){
alert(workOrderEmployeesB[i]);
}
这可能是一些愚蠢的东西,我忽视了,任何建议将不胜感激。
提前感谢,
克里斯尝试在Ajax的成功调用中调用循环
$.ajax({
type: "POST",
url: "<?php echo base_url('scripts/phpScripts/getEmployeesCID.php');?>",
data: {Cid: Cid},
datatype: "html",
success: function(json){
workOrderEmployeesA = $.trim(json).substring(0, json.length -1);
alert(workOrderEmployeesA);
var workOrderEmployeesB = workOrderEmployeesA.toString().split('/');
for(var i=0;i<workOrderEmployeesB.length;i++){
alert(workOrderEmployeesB[i]);
}
}
});
这是因为你在AJAX调用的之外调用split
-但是你的AJAX调用是异步的,所以当你试图运行split
方法时,workOrderEmployeesA
变量还不存在。
您可以使调用同步(这可能不是一个好主意,取决于代码是如何实现的),或者您可以将workOrderEmployeesB
变量与其他所有内容一起扔到AJAX调用的中,并在AJAX调用中执行所有内容,如果您仍然希望它异步运行和做您想要它做的