как загрузить несколько входов с использованием формданных - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть форма, которая имеет два разных типа входов. один тип = «файл», а другой тип = «текст». Теперь я пытаюсь отправить эти входные данные в свою базу данных с помощью formdata () в jquery, но что бы я ни делал, я не могу отправить оба ввода.

<form class='form-group' id='first_banner_form' enctype='multipart/form-data'>

    <label class='btn btn-warning btn-block textbutton'>
    upload your image<input type='file' class='hidden' 
    name='banner_number_one' id='banner_number_one'/>
    </label>

    <br>

    <input type='text' class='form-control' name='banner_number_one_addr' id='banner_number_one_addr'
    placeholder='write your name' style='text-align:center'/>
    <hr>

    </form>
    <br>
    <hr>
    <br>
    <button class='btn btn-success btn-block textbutton' id='upload_a_banner'>Upload</button>

и это мой код jquery

    $(document).on('click','#upload_a_banner',function(){

    var banner_form = new FormData($('#first_banner_form')[0]);



    $.ajax({
        url:'phpScript/upload_new_banners.php',
        method:'POST',
        data:banner_form,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success:function(data)
        {
            if(data=='done')
            {
                alert('uploaded');
            }elseif(data=='file is not set')
      { alert('database couldn\'t recieve all data'); 
 }
else{
            alert(data);
            }

        },error:function()
        {
            alert('error');
        }
    });

});

а это php код

if(isset($_FILES['banner_number_one']) && isset($_FILES['banner_number_one_addr']))
{
    # the image
    $fr_banner_name = $_FILES['banner_number_one']['name'];
    $fr_banner_temp = $_FILES['banner_number_one']['tmp_name'];

    #the link
    $fr_link = $_FILES['banner_number_one_addr']['name'];



}else{
    echo 'file is not set';
        exit;
}

когда я просто пишу

if(isset($_FILES['banner_number_one']))

все работает, но когда я пишу

 if(isset($_FILES['banner_number_one']) &&   isset($_FILES['banner_number_one_addr']))

Я получаю сообщение «файл не установлен». что мне делать?

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

banner_number_one_addr является частью $ _POST, поэтому используйте isset($_POST['banner_number_one_addr']) вместо isset($_FILE['banner_number_one_addr'])

if(isset($_FILES['banner_number_one']) &&   isset($_POST['banner_number_one_addr'])){
  ...
}
0 голосов
/ 19 ноября 2018

Это потому, что banner_number_one_addr находится в массиве $ _POST:

$ _ POST [ 'banner_number_one_addr']

0 голосов
/ 19 ноября 2018

Это потому, что banner_number_one_addr находится в $_POST массиве:

$_POST['banner_number_one_addr']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...