Bonjour, j'essaye de récupérer un input files afin de l'insérer dans ma base de donnée en meme temps que mes autres champs.
Tout s'enregistre bien en base de donnée mais le file s'enregistre en array dans la base.
Si quelqu'un a une idée merci :)

$('form#crea_carte_visite').submit(function(event) {
    event.preventDefault();

    var $form = $(this);
    var $status = $('#upload-status');

    var formData = new FormData($form[0]);
    var files = $('#logo')[0].files;
    if (files && files.length) formData.append('image', files[0]);
    console.log(files);

    $.ajax({
        type: $form.attr('method') || 'POST',
        url: $form.attr('action'),
        data: formData,
        contentType: false,
        processData: false
    })
    .done(function(data, text, jqxhr){
        swal("Validé !", "Votre commande à bien été prise en compte", "success");

    }).fail(function(jqxhr){
        swal("Oops...", "Merci de contacter le support", "error");
    });

});

6 réponses


betaWeb
Réponse acceptée

J'en étais certain : tu insères ton array tel quel, pas bien ! ^^

Jette un oeil à la documentation PHP, je pense que ça pourrait t'aider ;)

Belekos
Auteur

UP ! :)
Quelqu'un aurait-il une idée ?

Salut,

Si tu ne nous donne pas le code correspondant à l'insertion en BDD, on ne va pas pouvoir t'aider.
Si c'est un array qui est inséré en BDD, c'est que tu ne dois pas récupérer les bonnes informations. Rassure-moi, tu ne l'insère pas tel quel ? Sinon c'est juste ça ;)

Belekos
Auteur

Pas de soucis, voici le code d'insertion en bdd ;)

     public function creation_personnalisee($req, $res, $args){
    $auth = $this->app->Auth;
    $url = $this->app->settings['site']['url'];
    $auth->allow(['client', 'administrator', 'freelance']);

         if($_POST){
                if($req->getParam('qte_imp_crea')){
                    if($req->getParam('qte_imp_crea') == 250){
                                $price = 34;
                        } else if($req->getParam('qte_imp_crea') == 500){
                                $price = 42;
                            } else if($req->getParam('qte_imp_crea') == 1000){
                                $price = 49;
                            }
                       $insert = $this->app->db->insert('INSERT INTO orders_creation (identity, function, address, phone, mail, qte, price, web,logo) VALUES (:identity, :function, :address, :phone, :mail, :qte, :price, :web, :logo)', [
                          ':identity' => $req->getParam('name_carte'),
                          ':function' => $req->getParam('function'),
                          ':address' => $req->getParam('address'),
                          ':phone' => $req->getParam('phone'),
                          ':mail' => $req->getParam('mail'),
                          ':qte' => $req->getParam('qte_imp_crea'),
                          ':price' => $price,
                          ':web' => $req->getParam('web'),
                          ':logo' => $_FILES['logo']
                          ]);
                        return $res->withStatus(200)->write("good");
            } else {return $res->withStatus(500)->write("Veuillez renseignez la quantité");}
        } else {echo 'no';}

    $this->app->renderer->render($res, 'creation_perso.phtml');
  }
Belekos
Auteur

Je n'es meme pas eu besoin de regarder la doc, une fois que tu m'as dis ca j'ai compris mon erreur :)
J'ai buter bettement et me suis obstiné, merci à toi !

Pas de quoi :)