不能使用来自数据变量的字符串.split("/");


Cant use string from a data variable.split("/");

这个问题已经困扰我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]);
            }

这可能是一些愚蠢的东西,我忽视了,任何建议将不胜感激。

提前感谢,

克里斯

尝试在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调用中执行所有内容,如果您仍然希望它异步运行做您想要它做的