11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je poste ici car j'ai un petit problème avec php + jquery,
je m'explique, j'ai sur mon site une div contenant un formulaire pour poster un message masqué et affiché grâce à une fonction jQuery et un bouton, voici mon code

<input type="button" value="afficher/masquer" id="afficher-masquer">
<div class="poster">
<script>
				$(function() {  
				$("#afficher-masquer").click(function() {
				$(".poster").toggleClass("poster-click");
				}
				});  
				); 
			</script>

et le CSS

#afficher-masquer
{	
display: inline-block;
width: 90px;
height: 17px;

}
.poster 
{  
width: 100%;  
height: 0px;
overflow: hidden;
transition: height 1s;
}  
.poster-click
{  
   width: 100%;  
   height: 530px;
overflow: hidden;
transition: height 1s;
}

seulement, j'aimerais que tant que l'utilisateur doit corriger des choses dans son message (comme la longueur ou une adresse mail valide) la div reste affichée et que le bouton fonctionne quand même, j'ai essayé ceci mais ça ne marche pas

<input type="button" value="afficher/masquer" id="afficher-masquer"></h2>
			<div class="poster<?php if(isset($_POST['submit'])){echo '-click';}?>">
			<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
			<script>
				$(function() { 
				$("#afficher-masquer").click(function() {
				<?php if(isset($_POST['submit']))
				{
					echo '$(".poster-click").toggleClass("poster");';
				}
				else{
					echo '$(".poster").toggleClass("poster-click");';
				}
				?>
				});  
				}); 
			</script>


J'espère que vous pourrez m'aider, merci d'avance,
Okahiro
Modifié par Okahiro (15 Jun 2013 - 15:28)
Tu y es presque, ça ne peut pas marcher, car en gros avec ton code php ta div sera :


<div class="poster-click">

du coup le css de ".poster" ne s'applique plus Smiley cligne

Il faut que tu fasses :


<div class="poster<?php if(isset($_POST['submit'])){echo ' poster-click';}?>">
ça ne marche toujours pas Smiley decu
avec ton code, celà devient

<div class="poster poster-click">

c'est bizarre non ? Smiley confus
Qu'est ce qui ne marche pas ? La div ne s'affiche pas ouverte si il y a des erreurs ? ou le bouton ne marche plus ?

sinon pour le code

<div class="poster poster-click">


c'est le résultat voulu. C'est le principe des class, tu peux avoir plusieurs class pour un élément (contrairement a l'id qui doit être unique).

<div class="class1 class2 class3 class4 classEtc">


Du coup le css s'appliquent dans l'ordre des class.