Le code n'accede pas a ce bouton php

andy1508 -  
 andy1508 -
Bonjour,


je travaille sur un form ou je demande de remplir un champs affiche les infos relatifs , puis demande une confirmation pour enregistrer voila la stucture du code

//(l 'entete+ connex )

//les champs

<input type="submit" name="ok" value="ok" /> </br> // bouton d ordre d affichage

<?php

if(isset($_POST["ok"]))
{
?>
<input type="submit" name="yes" value="yes" /> </br>
<?php
if(isset($_POST["yes"]))
{
traitement apres le click sur yes
}
}
?>

mais meme kan je clicke le traitement de "yes" ne s'execute pas mais il passe a la page definie dans "action" du form

A voir également:

17 réponses

CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Je comprend pas tout, lorsque l' utilisateur clique sur OK, tu veux que ca affiche un récapitulatif des informations qu' il a renseigné et qu' il les corfirme en cliquant sur YES ?
0
andy1508
 
en fait en cliquant sur ok il affiche des information supplementaires ( des champs text que j ai pas inclu dans ce code ) puis il demande une autre confirmation avec un autre submit
le premier OK c pour afficher , le YES pour confirmer , mais le yes ne marche pas
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Je pense que le problème vient du fait que l' action du YES est imbriquée dans le OK. Quand tu cliques sur YES, tout ce qui est après
if(isset($_POST["ok"])) { 

ne sera pas interprété puisque tu cliques sur YES et non sur OK
0
andy1508
 
pouvez vous me proposer une solution pour arriver au resultat voulu ?
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Quelque chose comme ca
if(isset($_POST["ok"])) 
{ 
echo '<input type="submit" name="yes" value="yes" /> </br>';
}
if(isset($_POST["yes"])) 
{ 
traitement apres le click sur yes 
} 
0
andy1508
 
rien n'a changee , il retourne au point de depart pourtant g rien precise sur method
method=" "
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Qu' est ce que tu veux qu' il se passe quand tu cliques YES ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
andy1508
 
j execute une requete
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
tu peux nous mettre ton code en entier ?
0
andy1508
 
c trop long le code
en somme je vous explique l algo

je rentre un id_user je clike sur ok
si le user est trouve il m affiche son prenom et le bouton yes (yes va supprimer )
si je clicke sur yes il est supprimee
s'il trouve pas le user il maffiche un prompt

c tres simple sauf que le bouton yes refuse de s'executer avec du php (genre onsubmit = //j'execute )
mais avec javascript ca va
sauf que j'arrive pas a inclure le traitement d'une requete en php dans la focntion javascript
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Je vais t' écrire un petit code en XMLHttpRequest ca deverait fonctionner
0
andy1508
 
merci :)
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Donc tu vas devoir apporter quelques modifications à ton code
-transformer ton bouton YES
-ajouter une DIV

echo '<input type="button" name="yes" value="yes" onclick="Deluser();" /></br>
<div id="reponse"></div>';


Entre les balises <head> et </head>
tu mets:
<script type="text/javascript">
function Deluser(){
var a_object = null;
if(window.XMLHttpRequest){
a_object = new XMLHttpRequest();
}else if(window.ActiveXObject){
a_object = new ActiveXObject("Microsoft.XMLHTTP");
}else{
alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
return;
}
a_object.open("POST","delete.php",true);
a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

a_object.onreadystatechange = function(){
if(a_object.readyState==4){
if(a_object.status==200){
document.getElementById("reponse").innerHTML = a_object.responseText;

}
}
}
}
</script>


Ensuite tu crées une page delete.php
tu récupères la variable utilisateur
<?php
$utilisateur= trim(str_replace("+"," plus ",$_POST['delete']));
là avec la variable, tu fais ta requète pour supprimer l' utilisateur
et tu affiches un message
echo "$utilisateur a bien été supprimé";
(Ca affichera le message dans le div réponse que l' on a mis sous le bouton YES

Important
Dans la fonction Deluser() on envoit une variable $utilisateur
a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
Il faut bien entendu que quand on clique sur YES la variable soit transmise
0
andy1508
 
merciiiiiiiiiiiiiiiii je le test tt de suite !!
0
andy1508
 
juste une chose $_POST['delete'] & $utilisateur renvoie a quoi ?

parcke ma requete de suppression va utiliser le id deja defini dans le form
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
Va envoyer a delete.php l' UserID
A mon avis c est quand on clique sur OK la page se réactualise et c est là que tu dois récupérer l' UserID j' ai appeler la variable $utlisateur mais tu peux changer, le tout c est quelle contienne la valeur de l' UserID

Ensuite sur la page delete.php
$_POST['delete'] c est justement la valeur de l' UserID que l' on a envoyé avec la requete
0
andy1508
 
je dois donc inclure a_object.send("delete=<? echo '.'$utilisateur.''; ?>"; dans deluser() ?
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Mince tout à l' heure j' ai coupé la ligne au lieu de la copier xD
Je te redonne la fonction complete
<script type="text/javascript"> 
function Deluser(){ 
var a_object = null; 
if(window.XMLHttpRequest){ 
a_object = new XMLHttpRequest(); 
}else if(window.ActiveXObject){ 
a_object = new ActiveXObject("Microsoft.XMLHTTP"); 
}else{ 
alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
 return; 
} 
a_object.open("POST","delete.php",true); 
a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
a_object.send("delete=<? echo '.'$utilisateur.''; ?>";  
a_object.onreadystatechange = function(){ 
if(a_object.readyState==4){ 
if(a_object.status==200){ 
document.getElementById("reponse").innerHTML = a_object.responseText; 

} 
} 
} 
} 
</script> 
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Clique sur ton premier bouton "OK" ensuite tu regardes le code source de la page pour voir si la variable $utilisateur est bien renseignée
tu deverais voir
a_object.send("delete=user_48");

Ps; je viens de voir que j' ai pas fermé la parenthèse
a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
a_object.send("delete=<? echo '.'$utilisateur.''; ?>");
0
andy1508
 
non ca n'affiche tjrs rien :)
j'ai tjrs a_object.send("delete=<? echo '.'$utilisateur.''; ?>";
dans le code source
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Voici la ligne correcte; je viens de la tester
a_object.send("delete=<?php echo ''.$utilisateur.''; ?>");
0
andy1508
 
voila un peu la vrai application , bon j ai parler de suppression mais c est just un exemple pour faire des test mais la vrai application se trouve ici


fichier emprunt

<?php //connection base donnee

$db = mysql_connect('localhost', 'root' );
mysql_select_db('mediatheque',$db);
?>

<HEAD>
<script type="text/javascript">
function Deluser(){
var a_object = null;
if(window.XMLHttpRequest){
a_object = new XMLHttpRequest();
}else if(window.ActiveXObject){
a_object = new ActiveXObject("Microsoft.XMLHTTP");
}else{
alert('Votre navigateur de supporte pas la technologie AJAX(XMLHttpRequest)...');
return;
}
a_object.open("POST","emprunter.php",true);
a_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
a_object.send("emprunter=<?php echo ''.$advt.''; ?>");
a_object.send("emprunter=<?php echo ''.$ext.''; ?>");
a_object.onreadystatechange = function(){
if(a_object.readyState==4){
if(a_object.status==200){
document.getElementById("reponse").innerHTML = a_object.responseText;

}
}
}
}
</script>
</HEAD>


<form method="post" > <!-- Form AJout -->

<fieldset>
<legend>Nouvel emprunt</legend> <!-- Titre du cadre -->


<label >Adherent</label><br />
<input type="text" name="adhe" /><br />

<label >Exemplaire</label><br />
<input type="text" name="exemp" /><br />

<input type="submit" name="ok" value="Emprunter"/> </br> <!-- Ordre affichage ! -->


<?php

if(isset($_POST["ok"]))
{

if(isset($_POST["adhe"]))
{
$advt = $_POST['adhe'];
$ext = $_POST['exemp'];


$rq1="SELECT ID_DOC FROM EXEMPLAIRE WHERE ID_EXEMPLAIRE='$ext'";
$rqv = mysql_query($rq1)or die("<script>alert('Operation impossible !')</script>");
$rqe= mysql_fetch_array($rqv);
$doc=$rqe['ID_DOC'];
echo $doc;echo "</br>";

?>

<label >Document</label><br />
<input type="text" name="doc" value="<?php echo $doc; ?>" /><br />



<?php

echo '<input type="button" name="yes" value="yes" onclick="Deluser();" /></br><div id="reponse"></div>';

}

?>


</fieldset>
</form>


//le fichier emprunter

<?php
//$advt= trim(str_replace("+"," plus ",$_POST['emprunter']));
//$extt= trim(str_replace("+"," plus ",$_POST['emprunter']));
$rq4 = "UPDATE EXEMPLAIRE SET ID_ADHERENT = '$advt' WHERE ID_EXEMPLAIRE = '$ext';";
$rqv4 = mysql_query($rq4)or die("<script>alert('Emprunt Impossible !')</script>");
if($rqv4)
{
echo "<script>alert('Emprunt enregistre ! ')</script>";
echo "</br>";
}

?>


ici tous marche a 100% mais le probleme c faire la liaison entre la requete d'update et le bouton yes

parceke kan je clike sur yes rien ne se passe
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Pour envoyer plusieurs variables dans
a_object.send("emprunter=<?php echo ''.$advt.''; ?>");
faut faire

a_object.send("emprunter=<?php echo ''.$advt.''; ?>&variable2=<?php echo ''.$var2.''; ?>");
0
cascroute13 Messages postés 1628 Statut Membre 389
 
Essaye avec $_POST['yes'] au lieu de $_POST["yes"]
0
andy1508
 
ca revient au meme :)
0
cascroute13 Messages postés 1628 Statut Membre 389
 
Très bizarre !
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Tu avances un peu ou tu bloques toujours ?
0
andy1508
 
a vrai dire j ai pas trop le choix puiske deja je sais pas d'ou viens lerreur

j ai essaye de la faire avec du javascript a travers un prompt de confirmation( oui/non ) (donc sans le yes )
mais je sais pas comment recuperer le oui du prompt pour executer la requete en cas de "oui"

c est a dire executer la requete ou pas en fonction du confirm
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Ca envoit bien les variables à emprunt.php ?
0
andy1508
 
voila dans le code source

a_object.send("emprunter=<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>


donc je presume que c nn ?
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
Bah ca envoit quelque chose c est bon signe xD, c est les variables qui sont mals renseignées
0
andy1508
 
g deja verifier les variable avec des echo mais la je sens que j ai mis une betise quelque part


a_object.send("emprunter=<?php echo ''.$advt.''; ?>&variable2=<?php echo ''.$ext.''; ?>");
//je suis sur emprunt.php

et quand je passe a emprunter.php
c

<?php
$advt= trim(str_replace("+"," plus ",$_POST['emprunter'])); (ou emprunt ???)
$extt= trim(str_replace("+"," plus ",$_POST['emprunter']));

//requete

?>
0
andy1508
 
possible avec du Javascript ???
0
CrazyWorld Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   41
 
variable2 correspond à $ext
donc dans emprunt.php tu la récupères
$ext= trim(str_replace("+"," plus ",$_POST['variable2']));
0
andy1508
 
sinn ya une indication : stocker le OK dans un champs hidden ou encore l utiliser dans une session

si j'opte pour le hidden ou doit je mettre ce champs , c a dire aprs quelle condition ??
0