Problème formulaire [Résolu]

turkish78 7 Messages postés jeudi 24 septembre 2015Date d'inscription 16 octobre 2015 Dernière intervention - 24 sept. 2015 à 16:18 - Dernière réponse : nagaD.scar 4266 Messages postés samedi 8 septembre 2007Date d'inscription 13 juin 2018 Dernière intervention
- 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>
Afficher la suite 

Votre réponse

6 réponses

nagaD.scar 4266 Messages postés samedi 8 septembre 2007Date d'inscription 13 juin 2018 Dernière intervention - Modifié par nagashima le 25/09/2015 à 17:17
0
Merci
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
Commenter la réponse de nagaD.scar
0
Merci
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....
Commenter la réponse de turkish78
0
Merci
j'ai enfin trouvé! j'ai simplement changer les id et ça marche!
Commenter la réponse de turkish78
nagaD.scar 4266 Messages postés samedi 8 septembre 2007Date d'inscription 13 juin 2018 Dernière intervention - 28 sept. 2015 à 11:47
0
Merci
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
Merci de ton aide, du coup j'ai trouvé, problème d' id dans mon script jquery tout simplement.
nagaD.scar 4266 Messages postés samedi 8 septembre 2007Date d'inscription 13 juin 2018 Dernière intervention - 28 sept. 2015 à 12:20
Ok parfais ! je venais justement de reprendre un wamp, ca servira toujours ^^

naga
Commenter la réponse de nagaD.scar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.