如何在提交表单中包含id?

时间:2015-08-11 05:21:43

标签: javascript php jquery



目标:
1.在提交上载表单时包含id(在此示例中为id = 1),以便可以在submit.php中访问它。

2.根据id将文件名插入sql db。

表格:

<form action="#" enctype="multipart/form-data" method="post">
<input type="hidden" name="name" id="1">
<input type="file" name="upload" id="upload" >
<input class="button" type="submit" name="submit" value="Submit Content">
</form>

脚本:

$('input[type=file]').on('change', prepareUpload);
$('form').on('submit', uploadFiles);

function prepareUpload(event)
{
    files = event.target.files;
}

function uploadFiles(event)
  {
    event.stopPropagation(); 
    event.preventDefault(); 

    var data = new FormData();
    $.each(files, function(key, value)
    {
        data.append(key, value);
    });

    $.ajax({
        url: 'submit.php?files',
        type: 'POST',
        data: data,
        cache: false,
        dataType: 'json',
        processData: false, 
        contentType: false, 
        success: function(data, textStatus, jqXHR)
        {
            console.log('Successfully uploaded the file');
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            console.log('Failed to upload the file');
        }
    });
}


submit.php

<?php 
  $data = array();

  if(isset($_GET['files']))
  { 
    $error = false;
    $files = array();

    $uploaddir = 'uploads/';

    foreach($_FILES as $file)
     {
       if(move_uploaded_file($file['tmp_name'], $uploaddir .basename($file['name'])))
       {
        $files[] = $uploaddir .$file['name'];
        }
     else
       {
        $error = true;
       }
     }
   $data = ($error) ? array('error' => 'There was an error uploading your files') : array('files' => $files);
 }
 else
 {
  $data = array('success' => 'Form was submitted', 'formData' => $_POST);
 }

 echo json_encode($data);
 ?>


非常感谢!

2 个答案:

答案 0 :(得分:2)

将隐藏字段更改为:

<input type="hidden" name="id" value="1">

答案 1 :(得分:2)

您可以将隐藏字段用作

<input type="hidden" name="my_id" id="my_id" value="1">

现在在你的jquery中只需使用

var my_id = $('#my_id').val();

并使用data

传递