使用$ .post从JavaScript页面验证目录,以调用Web服务PHP函数 - javascript

我尝试使用$ .post函数测试成功(通过调用PHP函数“ is_dir”的Web服务)是否在服务器上已经存在一个文件夹,然后我希望它将字符串或布尔值返回给我javascript页面,然后再继续动态写入将放置在此处的新文件。使用jQuery来“构建”要测试的文件夹的文件路径,该jQuery捕获表单数据。我需要定义(在变量中)目录是否存在,然后能够从$ .post函数外部(而不是从内部,使用成功回调)访问该变量。这样一来,我就可以按照以下方式使用javascript:

如果{directory存在},则
   捕获更多表单数据(通过jQuery)并
   $ .post到调用PHP来更新数据库的Web服务

在$ .post函数之外,返回变量的值未定义。

我想我可能使这个问题变得过于复杂。有什么建议么?先感谢您。

参考方案

请在上方查看我对@Steve的评论:

   <script type='text/javascript'>

    //function gathers form data, validates constructed file path and then writes to DB
    function post_FormData() {

        var week_number          = $("#form_week_number").val();
        var program              = $("#form_program").val();
        var course               = $.trim($("#form_course_number").val());
        var form_content_type    = $("input:radio[name=content_type]:checked").val();
        var content_type         = "";      
        var activity_title_Val   = $.trim($("#form_activity_name").val());
        var activity_title_Split = activity_title_Val.split(" ");
        var activity_title_Clean = new Array();

        //this for-loop constructs a valid directory folder name from form data
        for(var i=0, l=activity_title_Split.length; i<l; i++) {

            activity_title_Split[i] = activity_title_Split[i].replace(/[^a-z0-9\s]/gi,"");
            activity_title_Clean[i] = activity_title_Split[i];
            activity_title_Split[i] = activity_title_Split[i].replace(/\b[a-z]/g, function(letter){return letter.toUpperCase();});
        }

        var activity_title = activity_title_Split.join("");

        var file_path  = "";

        file_path     += "/CourseFiles/" + program + "/" + program + course + "/" + content_type + "/Week" + week_number + "/activity-" + activity_title;

        var message    = "<div id=\"confirmation_container_contents\"><p><b>Confirm Content Repository file path: </b><br></p>";

        //begin web service call to PHP function
        $.post('webservices/create_PA_webservices.php', {web_service: "go_check_if_exists", data_file_path: file_path}, function(data){

            var exists = data.does_exist; //json_encoded RESPONSE FROM ASYNC REQUEST

            if(exists == "Y") {

                message   += file_path;
                message   += "<br><br><br><center><b>An activity folder with this name already exists.</b></center>";
                message   += "<br><br><center>Please edit the activity title and resubmit.</center>";
                message   += "<br><br><br><center><input type=\"image\" src=\"pa_images/editButton.jpg\" id=\"editButton\" value=\"edit\"></center></div>";

                $("#confirmation_container").empty();
                $("#confirmation_container").append(message);

            }
            else if(exists == "N") {

                message   += file_path;
                message   += "<br><br><center><input type=\"image\" src=\"pa_images/editButton.jpg\" id=\"editButton\" value=\"edit\">";
                message   += "&nbsp\;&nbsp\;&nbsp\;<input type=\"image\" src=\"pa_images/confirmButton.jpg\"  id=\"confirmButton\" value=\"confirm\"></center></div>";

                $("#confirmation_container").empty();
                $("#confirmation_container").append(message);

            }

            $(function(){//edit proposed file path

                $("#editButton").click(function() {

                    $("#confirmation_container").empty();

                });//end function edit path button

            });//end anonymous function


            $(function(){//confirm proposed file path and write to DB

                $("#confirmButton").click(function() {

                    go_post_FormData(activity_title_Val, file_path, week_number,  program, course, content_type);
                    $("#create_practice_activity").hide();
                    $("#build_practice_activity").show();
                    $("#activity_is_new").val("N");

                });//end function confirm path button

            });//end anonymous function


        }, "json").fail(function() {alert("The go_check_if_exists webservice call has failed");}); //end web service call  

    }//end function post_FormData declaration

    </script>

在PHP文件中调用javascript函数并在加载HTML文件之后? - javascript

我需要在我的php中调用js函数,但无法正常工作。有人可以告诉我我在做什么错吗?我该如何轻松地做到这一点?谢谢!我有三个文件:  mail.php负责发送$ _POST的内容(工作正常)。我调用我的javascript函数来切换模式,具体取决于邮件是否已发送。 <? ... $response = $sendgrid->send($email);…

如何使用PHP从动态输入字段捕获数组值? - javascript

我正在编写一个在线时间跟踪网页,允许用户将学习时间输入该系统。用户将首先输入名称,然后根据日期输入学习时间。一天中可能会有多个学习时间。以下是我第一页的编码,<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"…

用jQuery填充模式形式 - javascript

我正在将订单表从数据库绘制到datatables(jquery插件)中。我要在每笔最后一笔交易或每笔交易中增加付款。问题是,如何获取单击添加付款按钮以添加付款的行的订单ID。其次,当点击addpayment时,它会弹出一个带有字段或订单号的模态表单。我想用在td中找到的订单ID填充该字段,并使其不可编辑或隐藏,但在提交模态表单时将其发布到服务器。表格和模式表…

JavaScript将PHP中的字符串和整数传递给函数 - javascript

我正在尝试将字符串和整数都传递到同一函数中,但是引号引起了问题。我发现错误出在echo $q->info部分,我必须在此代码上使用双引号。有人可以帮我写这个$q->info,但不能获得真正的价值吗?到目前为止,我的代码是<td><a href="javascript:add(<?php echo $q->i…

PHP stringID无法从回显中读入onclick - javascript

我有一个音频播放器,可以在HTML中正常工作,但是当我从PHP回显调用时,似乎没有得到div ID的名称,因此它无法播放我的音频。这是我的代码:// Show audio if ($sObj->get('audio') != null) { $sAudio = $sObj->get('audio'); $a…