Bonjour,
Cela fait plusieurs jours (je peux même parler en semaine je crois) que je bloque sur un formulaire en ajax.
Le formulaire est présent dans une page qui elle même est appelée en ajax, je ne peux donc pas utiliser un code du type ci dessous :
Du coup j'ai modifié mon formulaire de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $(document).ready(function(){ $("#form_video").submit(function(){ $.ajax({type:"POST", data: $(this).serialize(), url:"inc/ajout_video.php", success: function(data){ $("div#ajout_video").html(data); }, error: function(){ $("div#ajout_video").html('Une erreur est survenue.'); } }); return false; }); });
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form id="form_video" method="post"> <p>Je propose une vidéo pour ce spot (copier/coller l'URL de Youtube, Viméo, Zapiks ou Dailymotion) :<br><span class="remarque">Exemple : https://www.youtube.com/watch?v=9RHS68rspb0</span></p> <input type="text" name="lien_video" id="lien_video" size="38" maxlength="200" /> <input type="hidden" name="id_circuit" id="id_circuit" value="<?php echo $id_circuit; ?>" /> <input type="submit" value="Proposer" onclick="ajout_video()" class="button" /> </form>
Mon script ajax :
Et le fichier tout bête de .php que je modifierai par la suite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function ajout_video() { $.ajax({ type: "POST", url: "inc/ajout_video.php", data: { lien_video : $("#lien_video").val(), id_circuit : $("#id_circuit").val() }, success: function(data){ $("div#ajout_video").html("<div class='zone_ok'>Merci pour ta participation, la vidéo sera vérifiée au plus vite.</div>"); }, error: function(){ $("div#ajout_video").html("<div class='zone_erreur'>Erreur !<br />Soit le champs est vide, soit le lien est mauvais.</div>"); } }) .done(function( msg ) { alert( "Data Saved: " + msg ); }); return false; // ne change pas de page }
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $lien_video = $_POST['lien_video']; $id_circuit = $_POST['id_circuit']; if( isset($lien_video) && isset($id_circuit) && $lien_video == 12){ echo "Success if"; } else{ echo "Error"; }
Deux erreurs :
Quoi que j'écrive dans lien_video, je me retrouve toujours avec le message : Merci pour ta participation, la vidéo sera vérifiée au plus vite. Même si j'écris autre chose que "12" dans le champs en question ? Et pourtant en msg alert j'ai Error qui s'affiche !?
Deuxième problème, la page se recharge quoi qu'il se passe !?
J'ai pourtant bien ajouté : return false; et sur mes 10000 tests j'avais aussi utilisé preventDefault(); mais apparement pas de la bonne façon.
J'ai plus de cheveux, j'ai mon écran fissuré et je suis prêt a sauter de la fenêtre ... (du rdc) ... histoire de dire que je bloque vraiment ...
Si une âme charitable voit une solution, je suis preneur !
Un grand merci d'avance
Partager