2015-08-11 6 views
0



Цель:
1. Чтобы включить идентификатор (в данном примере идентификатор = 1), когда форма загрузки представляется так, что она может быть доступна в submit.php

2. Для того, чтобы вставить имя в качестве 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); 
?> 


спасибо!

+1

http://stackoverflow.com/questions/4500164/how-can-an-id-of-input-field-can-be-read-by-php Вы можете прочитать это ... –

+0

Привет @Carlos! Благодаря! Но как я могу добавить id в данные в jquery? В настоящее время данные хранятся в файле, который я загружаю. Я не могу получить добавление или добавление id. – Mary

+2

Просто имейте в виду, что люди могут изменить это значение на клиенсиде, прежде чем отправлять его на PHP. В зависимости от того, что вы делаете с ним, возможно, стоит написать некоторые проверки на стороне бэкэнда, чтобы убедиться, что ценность на самом деле является тем, чем она должна быть. – Bono

ответ

2

Вы можете использовать скрытое поле

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

И теперь в вашем JQuery просто использовать

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

И передать его data

+0

Привет @Narendra! Благодаря! но как передать его с данными, где я присоединяюсь к id и файлу? – Mary

+1

Просто используя 'data.append ('my_id', $ ('# my_id'). Val())' –

+0

О, это нормально, если я использую это, даже если у меня уже есть эта строка 'data.append (key, value); '? – Mary

2

Изменить скрытое поле для этого:

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

Привет @Chayan! Как мне получить это с помощью js, чтобы я мог получить доступ к нему в submit.php? – Mary

+0

вы можете поместить id в скрытое поле, например id = "xyz". и вызывается в js как ** $ ('# xyz'). val(); ** для получения значения этого id. – Chayan

+1

И как он позвонил с помощью '#', если у него не было идентификатора 'id' –

Смежные вопросы