Le code n'accede pas a ce bouton php

Fermé
andy1508 - 19 juin 2011 à 16:21
 andy1508 - 21 juin 2011 à 02:44
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

17 réponses

CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 16:36
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
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 16:53
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
pouvez vous me proposer une solution pour arriver au resultat voulu ?
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 17:02
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
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 17:35
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
j execute une requete
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 17:41
tu peux nous mettre ton code en entier ?
0
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 17:57
Je vais t' écrire un petit code en XMLHttpRequest ca deverait fonctionner
0
merci :)
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 18:21
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
merciiiiiiiiiiiiiiiii je le test tt de suite !!
0
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 19:16
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
je dois donc inclure a_object.send("delete=<? echo '.'$utilisateur.''; ?>"; dans deluser() ?
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 19: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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
Modifié par CrazyWorld le 19/06/2011 à 20:14
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
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 20:59
Voici la ligne correcte; je viens de la tester
a_object.send("delete=<?php echo ''.$utilisateur.''; ?>");
0
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
Modifié par CrazyWorld le 19/06/2011 à 21:40
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 1292 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 2 avril 2014 388
19 juin 2011 à 21:40
Essaye avec $_POST['yes'] au lieu de $_POST["yes"]
0
ca revient au meme :)
0
cascroute13 Messages postés 1292 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 2 avril 2014 388
19 juin 2011 à 21:55
Très bizarre !
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 21:58
Tu avances un peu ou tu bloques toujours ?
0
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
Modifié par CrazyWorld le 19/06/2011 à 22:20
Ca envoit bien les variables à emprunt.php ?
0
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 samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
19 juin 2011 à 22:52
Bah ca envoit quelque chose c est bon signe xD, c est les variables qui sont mals renseignées
0
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
possible avec du Javascript ???
0
CrazyWorld Messages postés 326 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 février 2013 41
20 juin 2011 à 05:12
variable2 correspond à $ext
donc dans emprunt.php tu la récupères
$ext= trim(str_replace("+"," plus ",$_POST['variable2']));
0
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