这已经困扰了我的大脑2天了,没有任何运气,我想我会问这里。我遇到的问题是,在从ajax请求中获取字符串并将其保存到变量后,警报会正确显示" 1/2/3/4"但是,当我使用var array = variable.split('/');
进行拆分并尝试访问数组内容时,它只显示数组长度为1且该数据为空。在字符串之前使用了警报,以确保字符串保存所需的内容。任何帮助,将不胜感激。
我的代码如下:
HTML:
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]);
}
这可能是我看过的傻事,任何建议都会非常感激。
提前谢谢你,
克里斯
答案 0 :(得分:0)
尝试在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]);
}
}
});
答案 1 :(得分:0)
这是因为你在AJAX调用之外调用split
- 但是你的AJAX调用是异步的,所以当你使用workOrderEmployeesA
变量时它不存在我正试图在它上面运行split
方法。
您可以使调用同步(这可能不是一个好主意,具体取决于代码的实现方式),或者您可以抛出AJAX调用中的workOrderEmployeesB
变量 其他一切,并在AJAX调用中执行所有内容,如果您仍希望它以异步方式运行并执行您希望它执行的操作。