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

时间:2016-04-06 01:13:43

标签: 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的替代方法是什么?

1 个答案:

答案 0 :(得分:0)

由于您要上传文件,请查看Ravi Kusuma&#39; 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);

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

不要忘记查看Server Side标签中的server-side code - 您需要这两个部分(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

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

不要忘记验证上传的内容。你永远不知道发展中国家的黑帽子何时可能试图获得一个新账户。