Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在模态窗口内上载PHP文件_Javascript_Php_Jquery_Upload_Modal Dialog - Fatal编程技术网

Javascript 在模态窗口内上载PHP文件

Javascript 在模态窗口内上载PHP文件,javascript,php,jquery,upload,modal-dialog,Javascript,Php,Jquery,Upload,Modal Dialog,我已经在互联网上搜索了好几天,但运气不好。我需要一个模式窗口来上传文件并向脚本传递附加值。当用户单击“这是问题”时,需要打开模式窗口。下面是我当前的脚本。任何帮助或指导都将不胜感激 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style> ul { li

我已经在互联网上搜索了好几天,但运气不好。我需要一个模式窗口来上传文件并向脚本传递附加值。当用户单击“这是问题”时,需要打开模式窗口。下面是我当前的脚本。任何帮助或指导都将不胜感激

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>    
<style>
    ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    li {
        /*background-image: url(/images/page.png);*/
        background-position: 0 1px;
        background-repeat: no-repeat;
        padding-left: 20px;
    }

    a {
        color: #000000;
        cursor: pointer;
        text-decoration: none;
    }

    a:hover {
        text-decoration: underline;
    }

    .hidden {
    display:none;
    }
</style>
<script src="/js/jquery-1.11.1.js"></script>
    <script type="text/javascript">
        function addLine(what) {
            $("#" + what).append('<li>URL to uploaded document</li>');
        };

        function myToggle(what){
            $("#" + what).toggleClass('hidden');
        };
</script>
</head>

<body>
    <ul>
        <li class="folder">
            <a href="#" onClick="myToggle('Test1');">Test</a>
            <ul class="hidden" id="Test1">
                <li class="folder">
                    <a href="#" onClick="myToggle('Test1-2');">Test1-2</a>
                    <ul class="hidden" id="Test1-2">
                        <li>
                            <a href="#" onClick="addLine('Question1');">This is Question 1</a>
                            <ul id="Question1"></ul>
                        </li>
                        <li>
                            <a href="#" onClick="addLine('Question2');">This is Question 2</a>
                            <ul id="Question2"></ul>
                        </li>
                        <li>
                            <a href="#" onClick="addLine('Question3');">This is Question 1</a>
                            <ul id="Question3"></ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</body>
</html>

无标题文件
保险商实验室{
列表样式:无;
保证金:0;
填充:0;
}
李{
/*背景图片:url(/images/page.png)*/
背景位置:0 1px;
背景重复:无重复;
左侧填充:20px;
}
a{
颜色:#000000;
光标:指针;
文字装饰:无;
}
a:悬停{
文字装饰:下划线;
}
.隐藏{
显示:无;
}
函数addLine(什么){
$(“#”+what).append(“
  • 上传文档的URL
  • ”); }; 函数myToggle(什么){ $(“#”+what).toggleClass('hidden'); };

          尝试使用Ravishanker Kusuma的
          jQuery文件上传插件
          ,如下:

          要使对话框成为模态,只需创建如下所示的div:

          <div id="myOverlay"></div>
          
          #myOverlay {height:100%;width:100%;position:absolute;top:0px;left:0px;overflow:hidden;background:black;opacity:0.5;z-index:10;}
          
          覆盖DIV最初是隐藏的(通过在上面的css末尾追加
          display:none;
          )。当您希望它可见时,可以删除
          显示:无。可见时,它将覆盖页面的所有其余部分,但上载表单除外,该表单必须具有更高的z索引值

          制作一个对话模式就这么简单

          因此,使用Ravi的代码,您只需显示一个DIV,如下所示:

          <div id="myOverlay"></div>
          
          #myOverlay {height:100%;width:100%;position:absolute;top:0px;left:0px;overflow:hidden;background:black;opacity:0.5;z-index:10;}
          


          HTML:

          jQuery/javascript:

          $(document).ready(function() {
              $('#myButt').click(function () {
                  $('#myOverlay').show();
                  $("#box").show();
                  $("#fileuploader").uploadFile({
                      url: "upload_recv.php",
                      fileName: "myfile",
                      onError: function(files,status,errMsg){
                          /* onError because (1) jsFiddle cannot do ajax */
                          /* AND (2) there is no upload_recv.php file! */
                          $('#myOverlay').hide();
                          $('#box').hide();
                          alert('The file is now on the server');
                      }
                  });
              });//END mybutt.click
          });
          
          上传完成后,您将同时隐藏#myOverlay DIV和#box DIV(其中包含fileuploader DIV)。在jsFiddle示例中,为了确定上传何时完成,我使用了
          onError
          事件(因为jsFiddle既不能进行ajax处理,也不能进行后端PHP处理)。您可能会使用
          onSuccess
          afterUploadAll
          事件

          有关如何做到这一点的更多信息,请参阅HayAGeek页面上的演示


          最后。上传后如何处理服务器上的文件

          这是由上面jQuery代码中指定的PHP处理器文件完成的。在上面的示例中,我们将其命名为
          upload\u recv.php


          在上,请参见右上角的服务器端

          问题到底出在哪里,模式窗口还是文件上载?无论哪种方式,它似乎都很宽泛,因为还没有任何一种方式。对不起,关于这一点。问题是创建模式窗口以上载文件。感谢您的帮助。在你的帮助下,我相信我已经基本掌握了模态窗口。我现在唯一的问题是你的例子。所有的s都水平对齐,而不是相互重叠。我没有测试我的代码,只是举了个例子,但是如果div没有正确对齐,可能是css。这里有一个复习:在正常的HTML流中,
          onetwo
          将垂直对齐<代码>一个两个应相互堆叠(3D)。使用CSS,您可以从flow中删除任何div,并将其放置在您想要的任何位置。示例:
          onetwo
          将div2放在div1的顶部(3D堆叠)。最后,还有css
          z-index
          ,它确定哪个div位于顶部(3D堆叠)。对这个问题。请注意,为了正确定位和设置fileuploader div的样式,创建了其他div。还使用了CSS绝对定位和z索引。当在屏幕上定位元素有困难时,尝试将困难的元素放在另一个DIV中,并设置该DIV的样式。所有元素都应该在div中。还要注意对#myOverlay css的更改。(JSFIDLE示例也添加到问题本身中,以供将来的读者阅读)。