代码之家  ›  专栏  ›  技术社区  ›  Jonathan.

在表单上发布和多个提交按钮

  •  0
  • Jonathan.  · 技术社区  · 15 年前
        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];
    

    我从我问的另一个问题得到了这个代码。但是如果有多个提交按钮会发生什么。我真的不知道怎么问这个问题。这种情况的一个例子在这个站点的注销页面上。没有要输入数据的字段,但有两个提交按钮。

    如何使用上述代码“模拟单击”其中一个按钮(因此不使用uiWebView)

    1 回复  |  直到 13 年前
        1
  •  0
  •   casey    15 年前

    这些表单通常通过命名按钮并检查值来判断按下了哪个按钮。简单地说,一个接收表单数据的基本页面将通过检查是否提交了表单($_post['submit']=“send!”)它告诉页面用户通过按按钮到达那里。在决定按下哪个按钮时,使用相同的概念。

    if($_post[“submit”]=“发送!”)AdDATATODB();
    else if($_post[“submit”]=“更新!”)UPDATUSER();
    else if($_post[“submit”]=“删除我!”)ReaveUSER();

    所以现在,您需要做的是用表单检查HTML页面的源代码,找出您想要模拟的提交按钮的名称和值,并将这些数据添加到您请求中的文章正文数据中。

    更新: 哎呀!误解了你的问题,认为你在一个页面上的一个表单中有多个提交按钮,但现在我认为你的意思是一个表单转到另一个“确认”表单…在你的DidReceiveData委托方法中,你需要存储你得到的所有HTML,在你的DidFinishLoading委托方法中,你需要拉出任何隐藏的字段名&A值,然后创建一个新请求,其中这些值作为您的日志数据,URL是表单的“操作”URL