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


Submit button with POST instead of using HTML form

我在表单中有一个表单,这使得顶部表单没有响应。当我去掉第二种形式(在第一种形式内)时,第一种形式就起作用了。这是我的第二种形式:

<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插件。很简单,这是一把瑞士军刀,而且很管用。

研究这些例子。

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

拉维将这个过程分解为三个简单的步骤,基本上看起来是这样的:

<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);

注意PHP中的myfile$_FILES["myfile"])和jQuery代码块中指定的文件名之间的关系

不要忘记从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

与任何插件一样,抵制将其放入代码中的诱惑。先用它做几个快速而肮脏的测试。踢它的轮胎<15分钟可以节省你两个小时

别忘了验证上传的内容。你永远不知道一个发展中国家的黑帽子什么时候会试图获得一个新账户。