передать скрытое входное значение в php

я нашел этот код для загрузки изображения профиля,

http://www.phpdevblog.eu/2011-04/combined/jquery-ajax-and-php-based-profile-image-upload-without-reloading-the-page.html#comments

все в порядке. но я хочу установить имя файла = user_id

как передать входное скрытое значение user_id в процесс загрузки файла php?

var uploadURL = "processupload.php";
      $(document).ready(function(){
                $('a#uploadFile').file();
                $('a#delete').click(function(){
                      $('input#profileImageFile').val("");
                      $('img#profileImage').attr("src","/images/styles/profileBlank.jpg");
                      $('div#messageBox').html("Image deleted !");
                      $('div#messageBox').attr("class","success");
                      $('a#delete').hide();
                });
                $('input#uploadFile').file().choose(function(e, input) {

                    input.upload(uploadURL, function(res) {
                        if (res=="invalid"){
                            $('div#messageBox').attr("class","error");
                            $('div#messageBox').html("Invalid extension !");
                        }else{
                            $('div#messageBox').attr("class","success");
                            $('div#messageBox').html("Imagen cargada !");
                            $('img#profileImage').attr("src","/images/avatars/"+res);
                            $('input#profileImageFile').val(res);
                            $('a#delete').show();
                            $(this).remove();
                        }
                    }, '');                  
          });
           });

HTML

<div class="imageContainer">
            <img alt=""  src="/images/avatars/<?php echo $row_rs_user['user_image']; ?>" width="150" height="150" id="profileImage">
            <a href="#" id="uploadFile" title="Upload"><img alt=""  src="/images/styles/upload.jpg"></a>
            <a href="#" id="delete" title="Delete" style="display:none;position:relative;z-index:999999;"><img alt=""  src="/images/styles/delete.jpg"></a>
<input type="hidden" name="user_id" value="<?php echo $row_rs_user['user_id']; ?>">
            <div id="messageBox"></div>
    </div>

Процесс загрузки PHP

if(isset($_POST))
{
.
.
.
.

person osanjur    schedule 29.01.2013    source источник
comment
Отправка user_id через POST не очень хорошая идея. Просто используйте идентификатор пользователя из вашего сеанса (я думаю, пользователи должны войти в систему, чтобы иметь user_id?), Это намного безопаснее.   -  person Green Black    schedule 30.01.2013
comment
Хорошая идея... проблема решена. СПАСИБО   -  person osanjur    schedule 30.01.2013


Ответы (2)


Я не знаком с плагином, который вы используете для обработки загрузок, но если элементы формы попадают в PHP, как и должны, вы просто можете вызвать

$fileId = $_POST['user_id'];

Это установит переменную в вашем PHP-процессе равной скрытому значению. Убедитесь, что вы включили его в условное выражение ISSET, чтобы не вызвать ошибок.

person Daniel Beacham    schedule 29.01.2013
comment
на PHP приходит только один элемент (входной uploadfile) остальные элементы на форму не приходят, так как это происходит без отправки формы - person osanjur; 30.01.2013
comment
Попался .. Хорошо. В этом случае я согласен с Джоном в отношении использования сеанса. - person Daniel Beacham; 30.01.2013

Просто передайте информацию через uploadURL:

input.upload(uploadURL + "?user_id=" + $("input[name=user_id]").val(), function(res) {});

Убедитесь, что имя скрытого ввода, содержащего идентификатор пользователя, — «user_id». На стороне сервера в PHP вы можете прочитать значение переменной с помощью isset($_REQUEST['user_id']).

person Csaba Adam Meszaros    schedule 07.02.2013