Problème formulaire

Résolu
turkish78
Messages postés
7
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
16 octobre 2015
- 24 sept. 2015 à 16:18
nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
- 28 sept. 2015 à 12:20
Bonjour,

J'ai un problème sur mon formulaire, mon bouton "sauvegarder" n'agit pas sur mon formulaire et je ne comprends pas pourquoi...

Quelqu'un a-t-il une idée pour m'éclairer?

Merci d'avance de votre aide

<?php
$mysqli = new Mysqli("localhost", "root", "", "formulaire_label_drone") or die("Erreur lors de la connexion a la BDD");

//debug($_POST);
//print_r($_POST);
var_dump($_POST);
echo '</br>';
echo '</br>';
var_dump($_FILES);

?>

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>Logo  </title>
	<link rel="stylesheet" href="style.css">
	<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
	<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
	<script>
	//-----------------------------------------script logo---------------------------------------//
	$(function () {
                $('#logo').on('submit', function (e) {
                    // On empêche le navigateur de soumettre le formulaire
                    e.preventDefault();
					alert('toto');
                    var $form = $(this);
                    var formdata = (window.FormData) ? new FormData($form[0]) : null;
                    var data = (formdata !== null) ? formdata : $form.serialize();

                    $.ajax({
                        url: $form.attr('action'),
                        type: $form.attr('method'),
                        contentType: false, // obligatoire pour de l'upload
                        processData: false, // obligatoire pour de l'upload
                        dataType: 'json', // selon le retour attendu
                        data: data,
                        success: function (response) {
                            $('#result > pre').html(JSON.stringify(response, undefined, 4));
                        }
                    });
                });

                // A change sélection de fichier
                $('#logo').find('input[name="my_logo"]').on('change', function (e) {
                    var files = $(this)[0].files;

                    if (files.length > 0) {
                        // On part du principe qu'il n'y qu'un seul fichier
                        // étant donné que l'on a pas renseigné l'attribut "multiple"
                        var file = files[0],
                            $image_preview = $('#image_preview');

                        // Ici on injecte les informations recoltées sur le fichier pour l'utilisateur
                        $image_preview.find('.thumbnail').removeClass('hidden');
                        $image_preview.find('img').attr('src', window.URL.createObjectURL(file));
                       
                        $image_preview.find('.caption p:first');
                    }
                });

                // Bouton "Annuler"
                $('#image_preview').find('button[type="button"]').on('click', function (e) {
                    e.preventDefault();

                    $('#logo').find('input[name="my_logo"]').val('');
                    $('#image_preview').find('.thumbnail').addClass('hidden');
                });
            });
			
	</script>
</head>
<body>

<form id="logo" class="form-horizontal well" method="post" action="#" enctype="multipart/form-data">
		<div class="row">
			<div class="col-lg-6">
                <fieldset>
                    <legend>Votre logo</legend>
						<p>Poster votre logo (png transparent 300/100px)</p>
                            

                            <div class="form-group">
                                <label for="contenu" class="col-lg-2 control-label">Parcourir</label>
                                <div class="col-lg-10">
                                    <input type="file" class="form-control" id="my_logo" name="my_logo" accept="image/*" value="">
                                </div>
                            </div>

                            <div class="form-group" style="margin-bottom: 0;">
                                <div id="image_preview" class="col-lg-10 col-lg-offset-2">
                                    <div class="thumbnail hidden">
                                        <img src="http://placehold.it/5" alt="">
                                        <div class="caption">
                                            <h4></h4>
                                            <p></p>
                                            <p><button type="button" class="btn btn-default btn-danger">Annuler</button></p>
                                        </div>
                                    </div>
                                </div>
                            </div>  
				</fieldset>
				
			</div>
		</div>
		
		<div class="form-group">
        <div class="col-lg-10 col-lg-offset-2">
            <button type="submit" class="btn btn-primary">Sauvegarder</button>
        </div>
		</div>
</form>
</body>
</html>

4 réponses

nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
16
Modifié par nagashima le 25/09/2015 à 17:17
Salut,

Je préfèrerai un second avis car je n ai plus autant l habitude qu'avant maisbon. Pour moi le soucis est simplement :

action="#"



ce qui sous entend que tu rappel cette même page qui commence par :

var_dump($_POST);


Et tu nous dis que rien n est affiché c est ca ?

naga
0
Bonjour nagashima,

Merci pour ta réponse.

En fait quand j'execute la vérification avec le var_dump($_POST), cela m'affiche un tableau array vide, normalement, je suis censé obtenir un tableau array avec un champs file quand je clique sur mon bouton sauvegarder.

Ce qui est bizarre, lorsque dans ma fonction jquery je change les id, ca fonctionne mais je n'ai plus l'apercu de ma photo....
0
j'ai enfin trouvé! j'ai simplement changer les id et ça marche!
0
nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
16
28 sept. 2015 à 11:47
Salut !

Bon dans un premier temps on va faire simple :

Essaye de remplacer :


<button type="submit" class="btn btn-primary">Sauvegarder</button>


par :


<INPUT type="submit" class="btn btn-primary">Sauvegarder</INPUT>


(j ai un doute a savoir si le type button fonctionne dans tous les cas pour le submit ... normalement je pense que oui mais dans le doute, ca coute rien).

Si ca ne donne rien, change ton
action='#'
par
action='test.php'
ou test.php contiendra juste :


<?php
print_r($_POST);
?>


et vois ce que ca donne.

Essaye aussi de retirer le javascript si tu n as toujours pas de résultat, et vois ce que le post donne (s'il faut qu'on creuse, on fera par étape : Formulaire fonctionnel PUIS implémentation du JS, histoire de bien tout vérifier).

J'ai pas l'occasion de tester facilement donc si je peux eviter ca m arrange, mais si besoin je monterai un petit wamp.

Naga
0
Merci de ton aide, du coup j'ai trouvé, problème d' id dans mon script jquery tout simplement.
0
nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
16
28 sept. 2015 à 12:20
Ok parfais ! je venais justement de reprendre un wamp, ca servira toujours ^^

naga
0