Bonjour,
Voila je cherche a envoyer des donnes d'un form via la methode POST a un fichier PHP qui insere une nouvelle annonce dans ma base sql et me retourne un fichier xml contenant les donne du nouveau objt annonce cree et je dois parser le xml et récupérer l'id de l'annonce .

voila :
*comment faire appel a un fichier php en passent les donne en paramètres?

*Comment parser le fichier xml pour récupérer l'id ??

=====>
Dans mon application on a un formulaire pour ajouter une nouvelle annonce en saisissant :
titre, kilometre,annee,prix,energie,boitevitesse,description,nom,email,telephone et code postale.

==> je dois envoyer c donne au fichier php: newAnnonce.php?

Le fichier php est fonctionnel il suffit de le tester dans le navigateur en saisissant l'adressse:

http://www...../mobile/scripts/newAn...t&price=15000e

et le resultat est un fichiier XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<results>
<Membre>
<AnnonceID>6418574</AnnonceID>
<tittre>cliooo</tittre>
<Annee>2000</Annee>
<Kilometres>98000</Kilometres>
<Energie>GPL</Energie>
<energyID>3</energyID>
<vitesse>Manuelle</vitesse>
<vitesseID>1</vitesseID>
<description>test</description>
<Prix>15000e</Prix>
<Membre-ann_id>542303</Membre-ann_id>
<lastname>jack</lastname>
<email>dev6.web@blabla.com</email>
<telephone>0699887766</telephone>
<CodePostale>91300</CodePostale>
</Membre>
</results>
voila j'ai essayé, mais en étant debutante en objective c je n'ai pas reussi.
Voici mon code:


- (IBAction)valider
{
//VERIFICATION DES CHAMPS
if(![self VerifObligatoire])
return;

// Verif du mobile
if(![self VerifTelephone])
return;

//verification de ladresse mail si elle existe deja function member_value_exists( $field, $value, $break = true)
//si mail exist get membre(email)
//sinon creation de membre et rnvoie membre et envoi de lannonce

// je tente de creer si me renvoie




[self startIndicator];
/*
Faut d'abord s'identifier classiquement... (par exemple)
http://kruptos.no-ip.com/sd/sd-index...&password=toto

http://kruptos.no-ip.com/sd/sd-index...nd=set_annonce
Le reste des données doit être transmis en POST (en GET ça ne passera pas)
Les données nécessaires sont :
'categorie_id' , 'carrosserie_id','marque_id','annee','modele_id','chevfisc','couleur','energie_id','km','prix_vente','boite_id',

*/

// Composer le comment
NSString *stTitre=@"";
NSString *stAnnee=@"";
NSString *stKm=@"";
NSString *stPrix=@"";
NSString *stEnergie=@"";
NSString *stBoiteVitesse=@"";
NSString *stDescription=@"";

if (![titreAnnonce.text isEqualToString:@"Ex : Renault Clio"])
{
stTitre=[NSString stringWithFormat:@"%@",titreAnnonce.text];
}
if (![Annee.text isEqualToString:@"Ex : 2007"])
{
stAnnee=[NSString stringWithFormat:@"%@",Annee.text];
}
if (![Km.text isEqualToString:@"Ex : 56000"])
{
stKm=[NSString stringWithFormat:@"%@",Km.text];
}
if (![Prix.text isEqualToString:@"Ex : 14500"])
{
stPrix=[NSString stringWithFormat:@"%@",Prix.text];
}

if (![energie.text isEqualToString:@"Choisir une énergie"])
{
stEnergie=[NSString stringWithFormat:@"%@",energie.text];
}
if (![labelBoiteVitesse.text isEqualToString:@"Choisissez la boîte"])
{
stBoiteVitesse=[NSString stringWithFormat:@"%@",labelBoiteVitesse.text];

}
if (![descriptionLabel.text isEqualToString:@"Indiquer des détails"])
{
stDescription=[NSString stringWithFormat:@"%@",descriptionLabel.text];
}

NSString *nom=@"";
NSString *mail=@"";
NSString *villecp=@"";
NSString *phone=@"";

if (![labelCodePostal.text isEqualToString:@"Choisir la ville"])
{
villecp=[NSString stringWithFormat:@"%@",labelCodePostal.text];
}
if (![Email.text isEqualToString:@"Ex: exemple@free.fr"])
{
mail=[NSString stringWithFormat:@"%@",Email.text];
}
if (![Nom.text isEqualToString:@"Votre nom"])
{
nom=[NSString stringWithFormat:@"%@",Nom.text];
}
if (![telephone.text isEqualToString:@"Ex :"])
{
phone=[NSString stringWithFormat:@"%@",telephone.text];
}



NSArray* foo = [labelCodePostal.text componentsSeparatedByString: @","];
NSString* ville = [foo objectAtIndex: 0];
NSString* zipcp = [foo objectAtIndex: 1];


//////////////////////////////////////////////////////////////////////////////////////////////////
// Envoi de l'annonce au site autocadre par méthode POST
//////////////////////////////////////////////////////////////////////////////////////////////////


NSError *error;
NSString *reponse;
// Faire la connexion DB

NSString *nEnvoi=@"";
NSString *site1= NSLocalizedString(@"site2", @"www.ci-Ville.fr");
NSString *nUrl = [NSString stringWithFormat:@"%@newAnnonce.php?",site1];



//Création des paramètres de la méthode POST
NSString *post = [NSString stringWithFormat:@"mail=%@
&nom=%@
&telephone=%@
&zipCode=%@
&ville=%@
&title=%@
&annee=%@
&km=%@
&energie=%@
&boite=%@
&dscp=%@
&price=%@"
,mail
,nom
,phone
,zipcp
,ville
,stTitre
,stAnnee
,stKm
,stEnergie
,stBoiteVitesse
,stDescription
,stPrix];


NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];


//On précise l'URL
NSString *url = [NSString stringWithFormat:@"%@%@",nUrl,post];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSLog(@"%@",postData);
NSString *nomFichier=@"";

//Envoie de la requête POST de manière synchrone
NSData *returnXml = [NSURLConnection sendSynchronousRequest:request returningResponse:&reponse error:&error];
if (returnXml !=nil)
{
NSString *errorString;
NSPropertyListFormat format;

NSDictionary *plist;
plist =[NSPropertyListSerialization
propertyListFromData:returnXml
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format: &format
errorDescription:&errorString];

NSMutableArray *idAn;
idAn = [plist valueForKeyPath:@"results.Membre.AnnonceID"];

if ([idAn count]==0)
{
[[FoncGlobal sharedFoncGlobal] stopviewWait: self.view];
NSLog(@"Erreur de creation de l'annonce");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Erreur" message:@"impossible de créer l'annonce." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
return;
}


// Pour l'envoi du mail de confirmation après enregistrement d'une annonce :
//http://www.autocadre.com/do-reconfirmation-mail.php?id=xxxxxxx xxxxxxx = ID annonce.

/////////////////////////////////////////////////
// Envoi du mail de confirmation
/////////////////////////////////////////////////

//Création des paramètres de la méthode POST
post =[NSString stringWithFormat:@"id=%i",idAn];
postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSString *url = [NSString stringWithFormat:@"%@%@",NSLocalizedString(@"siteautocadre", @"http://www.autocadre.com/"),@"do-reconfirmation-mail.php"];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSLog(@"POST DATA : %@",postData);
NSString *nomFichier=@"";

NSData *returnXml = [NSURLConnection sendSynchronousRequest:request returningResponse:&reponse error:&error];
if (returnXml !=nil)
{
}

nomFichier=[NSString stringWithFormat:@"%@",[idAn objectAtIndex:0]];
}

int nbPhoto=[self stockPhotos:nomFichier];

for (int i=0;i < nbPhoto; i++)






// Après upload photo MAJ Annonce avec la meme fonction, mais en plus field[]=id_annonce&id_annonce=xxx
// nom du fichier : id_num_photo.jpg (id = id annonce, num_photo = num de la photo dans la table AUTO)

[[FoncGlobal sharedFoncGlobal] stopviewWait: self.view];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Annonce" message:NSLocalizedString(@"annoncreer", @"") delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];

titreAnnonce.text=@"";
Annee.text=@"";
Km.text=@"";
Prix.text=@"";
energie.text=@"";
descriptionLabel.text=@"";
labelBoiteVitesse.text=@"";
Nom.text=@"";
Email.text=@"";
labelCodePostal.text=@"";
telephone.text=@"";


[bimage1 setBackgroundImage:NULL forState:UIControlStateNormal];
[bimage2 setBackgroundImage:NULL forState:UIControlStateNormal];
[bimage3 setBackgroundImage:NULL forState:UIControlStateNormal];

}