2010-05-05 3 views
0
NSString *reqURL = [NSString stringWithFormat:@"%@/login",SERVER_URL]; 

    NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:reqURL]]; 
    [req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; 


    NSData *myRequestData = [NSData dataWithBytes:[@"username=whatever&password=whatever" UTF8String] length: [@"username=whatever&password=whatever" length]]; 
    [req setHTTPMethod: @"POST"]; 
    [req setHTTPBody: myRequestData]; 
    NSData *returnData = [NSURLConnection sendSynchronousRequest:req returningResponse: nil error: nil]; 
    NSString *html = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

J'ai obtenu ce code à partir d'une autre question que j'ai posée. Mais que se passe-t-il s'il y a plus d'un bouton de soumission. Je n'ai vraiment aucune idée de la façon de poser cette question. Un exemple d'une telle situation est sur la page de déconnexion de ce site. Il n'y a pas de champs pour entrer des données, mais il y a 2 boutons d'envoi.POST et plusieurs boutons de soumission sur le formulaire

Comment puis-je « simuler un clic » sur un de ces boutons en utilisant le code comme ci-dessus (pour ne pas utiliser un UIWebView)

+0

La règle numéro un de iPhone, vous ne parlez pas de l'iPhone. (Je plaisante, mais Apple le fait sentir de cette façon) –

+0

désolé je ne comprends pas vraiment –

Répondre

0

La façon dont ces formes disent habituellement que le bouton a été pressé est en nommant leurs boutons et vérifier la valeur. Autrement dit, une page de base recevant des données de formulaire va vérifier si un formulaire a même été soumis en vérifiant if ($ _POST ['submit'] == "Envoyer!") Qui indique à la page que l'utilisateur y est arrivé en appuyant sur le bouton. Le même concept est utilisé pour décider quel bouton a été enfoncé.

if ($ _POST ["submit"] == "Envoyer!") AddDataToDB();
else if ($ _POST ["submit"] == "Mettre à jour!") UpdateUser();
else if ($ _POST ["submit"] == "Supprimer moi!") RemoveUser(); Maintenant, ce que vous devez faire est de vérifier la source de la page html avec le formulaire et de trouver le nom et la valeur du bouton de soumission que vous voulez simuler et ajouter ces données à vos données de corps POST dans votre demande

Mise à jour: Oups! J'ai mal compris votre question, je pensais que vous vouliez dire plusieurs boutons de soumission dans un formulaire sur une page, mais maintenant je pense que vous vouliez dire un formulaire allant à un autre formulaire de confirmation ... Dans votre méthode de délégué didRecieveData vous aurez besoin de stocker tout le html et dans votre méthode de délégué didFinishLoading, vous devrez extraire les valeurs des champs cachés & puis créer une nouvelle requête avec eux comme données POST et l'url étant l'url "action" du formulaire

+0

Que se passe-t-il si un bouton de soumission a une valeur et un ne pas? –

+0

Bien, si vous essayez d'accueillir plusieurs boutons d'envoi sur un seul formulaire, vous ajouteriez simplement le nom et la valeur du bouton sur vos données POST. même si la valeur n'est rien. Tant que la variable est définie – casey

+0

"pensé que vous vouliez dire plusieurs boutons de soumission dans un formulaire sur une page" Non c'est ce que je voulais dire :) –

Questions connexes