我想使用这个空白
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:@"One point,Not good"])
{
}
连接到mysql并更新名为score的列中的值。
例如
在开头的列中有五个点,我按下alertview按钮“一点”
然后值列将变为六个点。
我不知道如何使用此虚空来做到这一点,我搜索了很多信息,但我没有得到它
我使用json和php连接到mysql,我使用phpmyadmin。
我是否做错了,或者这个无法使用。
答案 0 :(得分:1)
首先为您的UIAlertview设置标签值
您应该使用按钮索引值而不是其字符串文本
//我刚刚将标记值设为204
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(alertView.tag==204 && buttonIndex==1)
{
//your logic
}
else if(alertView.tag==204 && buttonIndex==0)
{
//your logic
}
}
答案 1 :(得分:0)
使用按钮索引
if(buttonIndex == 1)
{
// write the logic here
return;
}
else if(buttonIndex == 2)
{
// write the logic here
return;
}
答案 2 :(得分:0)
您必须使用的功能是
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex;
要使用此功能,ViewController必须实现UIAlertViewDelegate
.h
中的
例如
yourViewController : UIViewController <UIAlertViewDelegate>
答案 3 :(得分:0)
您可以使用UIAlertView委托方法
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)
{
//do something if you press the "cancel" button
} else if (buttonIndex == 1) {
//do other thing with other button
}
}
对于多个UIAlertView,您可以为每个警报视图设置标记。
您还需要为UIAlertView设置委托: UIAlertViewDelegate
答案 4 :(得分:0)
方法声明开头的(void)只表示该方法在代码执行后没有返回任何值。另一方面,声明如下:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
表示在方法结束时将返回NSInteger,因此您实际上可以将方法设置为等于这样的变量:
NSInteger number = [self numberOfSectionsInTableView:scoreTable];
对于你的问题,如果你想通过PHP更新一些生活在远程服务器上的MySQL表,你需要创建一个方法,可以使用NSURLConnection将值发送到PHP脚本你的服务器。我特别回答这个问题远非超出范围,因为它应该被分解为更小的问题。
问题1:如何编写PHP脚本?
问题2:如何使用NSURLConnection将更新发布到网络服务器
我认为如果你搜索SO,你可以找到这两个问题的答案。
祝你好运答案 5 :(得分:0)
首先,要检查是否已点击右键,您应该使用某些头文件中定义的内容。 例如:
#define CORRECT_BUTTON_TITLE @"One point,Not good"
然后,检查
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:CORRECT_BUTTON_TITLE])
{
// UPDATE YOUR DATABASE
}}
这应该允许您一次性轻松修改您的名字,避免错误。
第二,如何更新您的数据库。简单地说,您必须将指令发送到位于服务器上的PHP文件,“在您的MySQL数据库旁边”。您的说明是通过HTTP POST请求发送的。 在你的PHP中,
if( isset($_POST["updateScore"]) and isset($_POST["newScore"])) ){
$newScore = intval( $_POST["newScore"] );
// execute mysql queries
}
在XCode中,您可以使用ASIHTTPRequest发送POST请求。假设您的PHP文件位于www.example.com/update.php
。
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:CORRECT_BUTTON_TITLE])
{
// UPDATE YOUR DATABASE
NSURL *url = [NSURL URLWithString:@"www.example.com/update.php"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"1" forKey:@"updateScore"];
[request setPostValue:[NSString stringWithFormat:@"%i", 6] forKey:@"newScore"];
[request setDelegate:self];
[request startAsynchronous];
}}