【问题标题】:Run PHP File On Button Click在按钮单击时运行 PHP 文件
【发布时间】:2012-01-23 02:07:07
【问题描述】:

我想知道是否有人可以帮助我。

我一直在浏览这个以及许多其他网站和教程,以了解如何向打开 PHP 文件的表单添加按钮,在这种情况下,是一个允许用户上传文件的弹出表单到一个 mySQL 数据库。

除了打开文件,我还想把主窗体的'id'字段值结转到弹出的'文件上传'窗体。

根据我进行的研究,似乎有很多方法可以做到这一点,但从初学者的角度来看,我不确定最好的方法是什么。

也许有人可以就解决此问题的最佳方法提出建议。

非常感谢和亲切的问候

【问题讨论】:

  • 设置异步上传并不是真正的初学者领域。我建议设置一个本地 WAMP 服务器并阅读教程并首先离线学习。
  • 当您说“弹出”时,您是指新的浏览器窗口(带有自己的标题栏等)还是灯箱效果?
  • 嗨,是的,它是一个新的浏览器窗口,而不是灯箱效果。问候。

标签: php html button


【解决方案1】:

在页面之间传递值:

主要形式:

<form action="myuploadform.php" method="get">
ID: <input type="text" name="id">
<input type="submit" value="Open Form">
</form>

ID 文本框的值可以作为$_GET['id']myuploadform.php 中访问。

使用GET 参数是传递值的最简单方法。传递此 GET 值的另一种方法是在 URL 中:

.../myuploadform.php?id=35,其中 ID 变为 35。

【讨论】:

    【解决方案2】:

    这是我网站上的一个示例。它所做的只是允许将文件上传到服务器。它应该作为一个教程。

    <html>
    <head>
    <script type="text/javascript">
    var form_object = null;
    var button_object = null;
    
    function submit_form(obj)
             {
             form_object = obj.parentNode;
             form_object.submit();
             form_object.disabled = true;
    
             button_object = obj;
             button_object.disabled = true;
             }
    
    function enable_form()
             {
             form_object.disabled = false;
             button_object.disabled = false;
             }
    
    function Add_HTML(html)
             {
             if(navigator.appName == 'Microsoft Internet Explorer')
               {
               document.body.insertAdjacentHTML('beforeEnd', html);
               }
    
               //Firefox uses the Netscape engine (the Netscape version that really sucked)
               if(navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 5)
                 {
                 var freaky_object = document.createRange();
                 freaky_object.setStartBefore(document.body);
                 html = freaky_object.createContextualFragment(html);
                 document.body.appendChild(html);
                 }
             }
    </script>
    </head>
    
    <body>
    
        <form action="upload.php" method="post" enctype="multipart/form-data" target="upload">
              <label>File:</label> <input type="file" name="file" />
              <br />
              <label>File:</label> <input type="file" name="swntic" />
              <br />
              <input type="button" value="SUBMIT"
                     onclick="submit_form(this);" />
        </form>
    
        <iframe src="about:blank" style="display:none;" id="upload" name="upload"></iframe>
    
    </body>
    </html>
    

    服务器端代码:

    <?
    $confirmation = "";
    
    while(list($name) = each($HTTP_POST_FILES)) {
    ?>
    
    <? if(is_uploaded_file($HTTP_POST_FILES[$name]["tmp_name"])) { ?>
    <?= $HTTP_POST_FILES[$name]["name"] ?>
    <br />
    <?= $HTTP_POST_FILES[$name]["type"] ?>
    <br />
    <?= $HTTP_POST_FILES[$name]["tmp_name"] ?>
    <br />
    <?= $HTTP_POST_FILES[$name]["error"] ?>
    <br />
    <?= $HTTP_POST_FILES[$name]["size"] ?>
    <br /><br />
    <? } ?>
    
    <?
    if(is_uploaded_file($HTTP_POST_FILES[$name]["tmp_name"]))
      {
      move_uploaded_file($HTTP_POST_FILES[$name]["tmp_name"], "./uploads/" . $HTTP_POST_FILES[$name]["name"]);
      chmod("./uploads/" . $HTTP_POST_FILES[$name]["name"], 0644);
    
      $confirmation .= "<a href=\"./uploads/" . $HTTP_POST_FILES[$name]["name"] . "\">" .
                       $HTTP_POST_FILES[$name]["tmp_name"] . "</a> " . $HTTP_POST_FILES[$name]["type"] . ", " . $HTTP_POST_FILES[$name]["size"] . " bytes<br />";
      }
    }
    ?>
    
    <html>
    
    <script>
    var confirmation = '<?= $confirmation ?>';
    </script>
    
    <body onload="parent.enable_form(); parent.Add_HTML(confirmation);">
    </body>
    </html>
    

    它并不完美,但可以用作学习工具。

    【讨论】:

      最近更新 更多