javascript - 使用 POST 提交按钮而不是使用 HTML 表单

标签 javascript php html forms

我的表单内有一个表单,这使得顶部表单无响应。当我取下第二个表格(位于第一个表格内)时,第一个表格起作用。这是我的第二种形式:

<form action="imgupload.php" method="post" enctype="multipart/form-data">
            <h3>Upload a new image:</h3>
            <input type="file" name="fileToUpload" id="fileToUpload">
            <br>
            <input type="hidden" value="<?php echo $row['Gallery_Id']; ?>" name="gid">
            <input type="hidden" value="User" name="user">
            <input type="submit" value="Upload Image" name="imgup">
</form>

由于这使得第一个表单无法工作,我想知道是否可以去掉表单字段,然后提交按钮可以像这样将表单数据发送到 imgupload.php

<input type="file" name="fileToUpload" id="fileToUpload">
<input type="hidden" value="<?php echo $row['Gallery_Id']; ?>" name="gid">
<input type="hidden" value="User" name="user">
<input type="submit" value="Upload Image" name="imgup" action="imgupload.php" method="post" enctype="multipart/form-data">

这现在不起作用。有什么办法可以让它工作吗?如果没有,有什么替代方法可以将此数据发送到其他 php?

最佳答案

既然您正在上传文件,请查看 Ravi Kusuma 的 Hayageek jQuery File Upload plugin 。很简单,它就是一把瑞士军刀,而且很有效。

研究示例。

http://hayageek.com/docs/jquery-upload-file.php

Ravi 将这个过程分为三个简单的步骤,基本上如下所示:

<head>
    <link href="http://hayageek.github.io/jQuery-Upload-File/uploadfile.min.css" rel="stylesheet">  // (1)
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="http://hayageek.github.io/jQuery-Upload-File/jquery.uploadfile.min.js"></script>   // (1)
</head>
<body>
    <div id="fileuploader">Upload</div>  // (2)
    <script>
        $(document).ready(function(){
            $("#fileuploader").uploadFile({  // (3)
                url:"my_php_processor.php",
                fileName:"myfile"
            });
        });
    </script>
</body>

最后一步是在 jQuery 代码中指定 PHP 文件(在本例中为 my_php_processor.php )来接收和处理该文件:

my_php_processor.php:

<?php
    $output_dir = "uploads/";
    $theFile = $_FILES["myfile"]["name"];
    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);

注意 myfile 之间的关系在 PHP ( $_FILES["myfile"] ) 中,以及 jQuery 代码块中指定的文件名。

别忘了查看server-side code来自Server Side选项卡 - 您需要两个部分(js 和 php)。

<小时/>

再次查看您的问题,您可能也想使用此功能:

dynamicFormData: function()
{
    var data ={ location:"INDIA"}
    return data;
}

dynamicFormData: function(){
    return {
        newID: $("#newNID").val(),
        newSubj: $("#newSubj").val(),
        newBody: $("#newBody").val(),
        formRole: $('#formRole').val()
    };

这些将出现在 PHP 端,因此:

$newID = $_POST['newID'];
$subj = $_POST['newSubj'];
etc
<小时/>

与任何插件一样,请抵制将其放入代码中的诱惑。首先用它做一些快速而简单的测试。踢轮胎。 十五分钟将为您节省两个小时。

并且不要忘记验证上传的内容。您永远不知道发展中国家的黑帽何时可能会尝试获得新帐户。

关于javascript - 使用 POST 提交按钮而不是使用 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36439752/

相关文章:

php - 如何在 PHPmotion 中使用 ffmpeg &mp4box 将视频从任何视频转换为 mp4 时减小文件大小?

php - 回显表格和html代码

javascript - 如何将时间分量归零?

javascript - 使用 jquery 匹配更改时的输入值

php - 数据库更新但仍然抛出异常

html - CSS - 溢出和定位

javascript - 拖动数据传输数据在 ondragover 事件中不可用

javascript - 清除数组中的空元素

javascript - Electron JS : How to show changes in the code immediately?

php - URL 验证 javascript jquery