Recuperer et repondre php/ws

Fermé
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 - 6 août 2008 à 10:43
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 - 6 août 2008 à 14:57
Bonjour,
je travaille webservices en php

j'ai une liste déroulante se trouvant dans un formulaire dans ma page client,en gros mon probleme est que j'ai pas pu recuperer le resultat de cette liste déroulante dans mon webservice,
voilà ce que j'ai fait dans ma page client :

<form name="ff" action="mapageClient.php" method="post">
 <select name="maListeDeroulante"  id="pays"  >
 <?php while($retour=mysql_fetch_array($r)){
            echo '<option>'.$retour['p'].'</option>';}?>
 </select>
</form>


et voici la fonction que j appelle a partir de mon webservice:

function fonction(){
		if (isset($_POST['pays'])){
		$resultat='le pays est '.htmlspecialchars($_POST['maListeDeroulante']);}
		return $resultat;}


quelqu un peut m aider?

16 réponses

famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 11:26
assaye ça :

<form name="ff" action="mapageClient.php" method="post">
<select id="pays" >
<?php while($retour=mysql_fetch_array($r)){
echo '<option>'.$retour['p'].'</option>';}?>
</select>
</form>


et :


function fonction(){
if (isset($_POST['pays'])){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;}

a+
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 11:30
oui c est ce que j suis entrain de faire ,ds le forum jai remplacé 'pays' par 'maListeDeroulante' juste pour qu on comprend que j parle du nom de la liste deroulante
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 11:33
je reviens apres une petite pause a+
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 11:41
ya pas de soucis ^^
0

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

Posez votre question
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 12:07
resalut
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 12:13
est ce que ta fonction est appelée a partir du fichier 'mapageClient.php'

sinon pour etre sur tu fais un echo de :

$r= fonction();
echo $r;

s'il affiche le pays alors ta fct marche

sinon tu pe envoyer tout le script pour le voir et detecter les anomalies!!!
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 12:41
oui biensur j l appelle dans mapageclient.php en faisant ça:

	$sel = new nusoap_client("http://localhost/xampp/TestSoap/server.php");//path de mon ws
	$param = '';

	$result = $sel->call('mafonction', $param); // Calls the method
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 12:58
je pense que la fonction ne peu pas acceder a la variable $_POST['pays']

essaye ;

function fonction(){
global $

if (isset($_POST['pays'])){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;}
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 12:59
je pense que la fonction ne peu pas acceder a la variable $_POST['pays']

essaye ;

function fonction(){
global $r=$_POST['pays']; //creation d'une variable globale
if (isset($_POST['pays'])){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;}
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 13:00
je pense que la fonction ne peu pas acceder a la variable $_POST['pays']

essaye ;

function fonction(){
global $r=$_POST['pays']; //creation d'une variable globale
if (isset($r)){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;}
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 13:30
jai fait ce que tu m as dit, ça na rien fait ,le probleme est que meme mon firebug ne detecte aucune erreur !!j pense que ce fameux $_POST ne marche pas avec les ws et qu il ya autre solution pour faire paaser les parametres?
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 13:55
pardon j'ai oublié qqchose

il faut declarer $_POST['pays'] comme vartiable globale pas $r=...

alors :


essaye ;

function fonction(){

global $_POST['pays']; //creation d'une variable globale

if (isset($_POST['pays'])){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;}


j'espere que ça va marcher
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 14:16
rien ne change!!

mon but est : en cliquant sur une liste deroulante se trouvant dans une page client.php le ws prends ça comme parametre pour le redonner enfin a la meme page client en utilisant une simple fct d affichege dans un textarea.

voila mon code client.php :

<?php 
 	require_once('nusoap.php');
   
   	$sel = new nusoap_client("http://localhost/xampp/test2/testServer.php");
	
	$param = '';

	$result = $sel->call('jihene', $param); // Calls the method
	if($client->fault)
  	die("<h1>FAULT:</h1>Code: {$ins->faultcode}<br />"
  	. "Actor: {$ins->faultactor}<br />"
  	. "String: {$ins->faultstring}");
  
	print_r("<br><textarea cols='100' rows='15'>".$result."</textarea><br>");	
	 mysql_connect("localhost","root","");
	mysql_select_db("test");
   $r=mysql_query("SELECT pays p from pays");
 ?>
 <form name="ff" action="testClient.php" method="post">
 <select name="pays"  id="pays"   >
 <?php while($retour=mysql_fetch_array($r)){
            echo '<option>'.$retour['p'].'</option>';}?>
 </select>

 </form>




et voila le code ds mon ws:
require_once ("nusoap.php")
 $server = new soap_server();
 $server->configureWSDL('InteropTest','http://soapinterop.org/');
 $server->wsdl->schemaTargetNamespace = 'http://soapinterop.org/xsd/';

	  	   
	   $server->register('jihene',			// method name
array('inputString' => 'xsd:string',
'file' => 'xsd:string',
'language' => 'xsd:string'),				// input parameters
array('return' => 'xsd:string'),			// output parameters
'urn:ajiheneCall',				// namespace
'urn:jiheneCall#',				// soapaction
'rpc',										// style
'encoded',									// use
"documentation"								// documentation
);

	   function jihene(){
	    
if (isset($_POST['pays'])){
$resultat='le pays est '.htmlspecialchars($_POST['pays']);}
return $resultat;} 
     
       $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
       $server->service($HTTP_RAW_POST_DATA);
       if(isset($log) and $log != ''){
          harness('nusoap_r2_base_server',$server->headers['User-Agent'],$server->methodname,$server->request,$server->response,$server->result);
       }
    ?>




j espere que maintenet mon probleme depassage des parametre est plus clair!
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 14:31
a premiere vue il ya qqchose dans le qui ne convient pas

<form name="ff" action="testClient.php" method="post">
<select name="pays" id="pays" >
<?php while($retour=mysql_fetch_array($r)){
echo '<option>'.$retour['p'].'</option>';}?>
</select>

la fonction mysql_fetch_array retourne un tableau indexé par [1][2].....
pour acceder a tes colones de la table dans la memoire avec leurs noms de colonnes dans ta table physique ou avec l'alias il fo utiliser la fonction "mysql_fetch_assoc": "while($Data = mysql_fetch_assoc($SqlRequete))"

<form name="ff" action="testClient.php" method="post">
<select name="pays" id="pays" >
<?php while($retour= mysql_fetch_assoc($r)){
echo '<option>'.$retour['p'].'</option>';}?>
</select>
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 14:33
et cé normal qu'il t'affiche pas d'erreurs comme ça car pour lui il n'y a rien dans la variable $retour['p']
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
6 août 2008 à 14:46
ya pas de prob avec le fetch_array ,jai deja essayé ca avant et ca marche... j ai enlevé le test (if) ds la fonction jiihene,et ça marche maintent ça me donne une alerte :' le pays est ' mais sans mentionner la variable pays, d apres ce que j ai compris ,$_POST['pays'] ne marche pas ici!! voilai ce que j ai ajouté au client.php:
<form name="ff" action="testClient.php" method="post">
    <select name="pays" id="pays">
       <?php while($retour=mysql_fetch_array($r)){
            echo '<option>'.$retour['p'].'</option>';}?>
    </select>
</form>
<script language="javascript">


var params = new SOAPClientParameters();
    params.add("type" ,document.getElementById("pays").value);    
 SOAPClient.invoke( 'http://localhost/xampp/test2/testServer.php', 'jihene', params, true, displayContent);  
 
 function displayContent(response){
  alert(response); 
 }
</script>



et j ai enlevé dans testServer le test dans la fonction qui est devenu comme ceci:
  function jihene(){

$resultat='le pays est '.htmlspecialchars($_POST['pays']);
return $resultat;} 



comme j l ai dit ça me donne l'alerte :' le pays est ' mais sans mentionner la variable pays,
0
famazigh Messages postés 17 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 août 2008 2
6 août 2008 à 14:57
il y a $_GET["pays"] et dans ton form utilise <form name="ff" action="testClient.php" method="get">
lais c'est pas trop conseilé car $_get n'est pas securisé


sinon regarde ta fonction


il faut aussi ajouter une fonction qui fait soumettre ton formulaire apres la selection ou je ne sais pas quelque chose comme ça qui fait que le fourmulaire soit soumis apres la selection pour que les valeurs des champs vont se transmettre vers ton fichier de destination.... si ce n'est pas encore fait


si c'est ca le pb avec JS il y a la fonction submit() qui fait ça

j'espere que ça va t'aider
0