Popin (js) empêche traitement php : traitement simultané en js et php d'un submit formulaire
Bonjour,
Au submit d'un formulaire, il y a 2 traitements:
1- coté serveur, le php enregistre les données postées dans la bdd.
2- Une popin confirme les saisies (js).
Seulement, cette popin, en s'éxécutant, empêche le traitement php.
En la désactivant, le php fait son boulot.
Quelqu'un a-t-il une idée sur la façon de faire pour que le surgissement de la popin n'empêche pas
le php d'enregistrer les données dans la bdd ?
Merci.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php
require("config-db.php");
mysql_connect($adresse,$nom,$motdepasse);
mysql_select_db($database);
if(isset($_POST['action-submit'])){
$valid=true;
$prenom=$_POST['prenom'];
$email=$_POST['email'];
if(isset($prenom) && isset($email)){
$insertdata="INSERT into testable (prenom,email) values('$prenom','$email')";
mysql_query($insertdata) or die(mysql_error());
return true;
}
}
?>
<form id="themes" action="" method="post" data-rel="popup_name" class="poplight">
<input id="nom-inscr" class="foo" name="prenom" type="text"/>
<input id="email-inscr" class="foo" name="email" type="text" />
<button id="action-submit" class="action-submit" name="action-submit" type="submit"><span class="tick">JE M'INSCRIS</span></button>
<div id="popup_name" class="popup_block">
<p>
Les données ont été correctement enregistrées.<br/>
Vous allez recevoir un mail d'activation à :<br /><br />
<strong id="emailtarget"></strong>
</p>
</div>
</form> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| $(function(){
var formulaire = $("#themes");
formulaire.on('submit',function(event) {
event.preventDefault();
var mail = formulaire.find("input[name=email]");
var email = $.trim(mail.val());
document.getElementById("emailtarget").innerHTML = email;
var popID = $(this).data('rel');
var popWidth = $(this).data('width');
$('#' + popID).fadeIn("fast").css({ 'width': popWidth}).prepend('<a href="#" class="close"><img src="styles/images/close_pop.png" class="btn_close" title="Fermer la fenêtre" alt="Fermer" /></a>');
var popMargTop = ($('#' + popID).height() + 80) / 2;
var popMargLeft = ($('#' + popID).width() + 80) / 2;
$('#' + popID).css({
'margin-top' : -popMargTop,
'margin-left' : -popMargLeft
});
$('body').append('<div id="fade"></div>');
$('#fade').css({'filter' : 'alpha(opacity=70)'}).show();
return true;
});
$('body').on('click', 'a.close, #fade', function() {
$('#fade , .popup_block').fadeOut("fast",function() {
$('#fade, a.close').remove();
});
return true;
});
}); |
Code:
1 2 3 4
| #fade {display: none;background: #000;position: fixed;left: 0;top: 0;
width: 100%; height: 100%;opacity:.7;z-index: 9999;}
.popup_block{display: none;background: #fff;float: left;font-size:1.0em;position: fixed;
top: 50%; left: 50%;z-index: 99999;} |