[php] submit ouvre un popup qui recupere post

Fermé
tototar - 1 nov. 2008 à 03:21
 Antkhan - 13 janv. 2009 à 12:57
Bonjour,
voila jai un pti pb que jarrive pas a resoudre, jai cherche partout je trouve rien qui marche.

jai une page php (appelee: page1.php) , liee a une bdd, qui affiche les elements presents dans une table avec un

while(......){
echo '......';
}

dans mon "echo" jai un form pour chaque element de la table. cest juste un submit qui envoi a une autre page php (appelee: page2.php) un parametre hidden par post (parametre qui est different pour chaque element de la table).

la page2.php sert a ajouter le parametre posté dans une deuxieme table et a afficher un message de reussite ( genre: bravo le parametre est ajouté a la table).

jusquici tout marche

mais je voudrais que page2.php s'ouvre dans une fenetre popup (dune taille specifique et sans menu etc...) et non dans la meme fenetre que page1.php.

jai essayé un target="_blank", ca ouvre dans une autre fenetre mais pas un vrai popup, il faut que je mette du javascript (self.resize) dans page2.php et ca donne pas terrible...

jai tenté des window.open dans la balise form ou input de page1.php mais le parametre posté ne passe pas.

ou alors jai utilisé une mauvaise syntaxe...

ou alors jai un pb avec les " et ' car il y a du php qui utilise ' puis du html qui utilise " et du javascript qui utilise ' dans la meme ligne et les navigateurs interpretent mal ca...

si quelqun a une idee qui marche...
merci beaucoup
A voir également:

4 réponses

Bonjour

Je n'ai pas de bonne solution à te proposer, mais quelques suggestions et remarques
D'abord les navigateurs interpretent mal ca.Si, les navigateurs interprètent ça bien. Sois sûr que si tu as des problèmes de ' et " c'est uniquement parce que tu n'appliques pas correctement les règles de définition des chaînes en PHP, javascript et HTML.
Un autre point également : pour passer des données d'une page à l'autre, pourquoi n'utilises-tu pas des variables de session ?
0
je voulais dire que lorsque jimbrique du js dans une ligne php (dans un echo '') alors le serveur croit que le premier ' du code js est un ' de fin de la ligne echo, et il renvoi donc une erreur "unexpected $end" ce qui est normal.

ensuite, jai deja une variable de session, que jutilise mais pour autre chose, et dans le cas que je decrit je prefere utiliser un post tout simple. et ca marche tres bien mais je voudrais juste afficher page2.php non pas en page normal mais en popup.

pour resumer, jai quelquechose qui ressemble a un "magasin" avec des articles, chaque article a sa form liee, avec un bouton "acheter", qui lorsque que lon clique dessus, doit passer unevariable hidden a page2.php, et qui doit lancer page2.php dans un poup. page2.php sert a deux choses, la premiere, ajouter larticle acheté dans une autre table, et la seconde, afficher un message de reussite ( merci de votre achat, ou, ajout reussi a la table)....
une solution??
0
je voulais dire que lorsque jimbrique du js dans une ligne php (dans un echo '') alors le serveur croit que le premier ' du code js est un ' de fin de la ligne echo, et il renvoi donc une erreur "unexpected $end" ce qui est normal.
Non, ça n'est pas normal. si tu commences un echo par ",il se termine par un autre ", pas par un '. Et si tu ne veux pas qu'un " interne soit pris pour une fin de chaîne, il suffit de le précéder d'un \. Les règles du PHP sont simples et claires là-dessus, il n'y a pas à accuser le navigateur ni l'interpréteur PHP (tu es passé de l'un à l'autre entre tes 2 messages).
D'ailleurs le message "unexpected $end" ne signifie pas cela. Il signifie que la fin du fichier a été trouvée avant la fin d'une instruction, d'un bloc {}, d'une fonction... ou peut-être d'une chaîne. Il ne signifie pas qu'une chaîne a été terminée trop tôt (même s'il peut en être la conséquence).

Tu utilises déjà une variable de session, je ne vois pas du tout ce que ça a de gênant pour en utiliser une ou dix autres. Un post tout simple, comme tu dis, est certainement beaucoup moins simple ! Je viens de faire le test avec (dans un onClick) window.open("./traitement.php", "mafenetre", "width=310,height=400,left=0,top=0"); Dans traitement, j'affiche mes variables de session et ça marche tout seul...
0
<?php
echo '<a href="javascript:alert(\'bonjour!\');">Dit bonjour!</a>';
?>
note l'utilisation des \ et ça passe...

J'ai un problème qui me conduit à chercher à faire la même chose que tototar...

La page1 du siteA doit afficher en popup la page2 du siteB en lui passant des paramètres spécifiques.

Pour des raisons de référencement et à cause de la multiplication de barres Google et autre,
je ne souhaite pas que les dit paramètre soient présents dans l'url. (comme c'est le cas avec du GET)

Comme il s'agit de deux sites différents (pas le même Vhost) je ne peux pas passer par des variables de session.

J'ai évidement pensé à du POST mais pas moyen de trouver comment faire...
0