iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Eerste XML App (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/43013-eerste-xml-app.html)

Tim14ww 03-09-09 18:48

Eerste XML App
 
Hoi, ja ik heb gezocht en kon het niet vinden.

Ik had een idee voor een app, en dat moest data uit een database halen, dat is gelukt, misschien wel met een omweg, maar daar doet het nu niet toe, het werkt en daar gaat het om.

Ik heb data in een database staan, die zet ik met een script om naar een xml file, en die leest mijn iphone heel netjes.

Nu vroeg ik me af of het mogelijk was, om ook via de Applicatie zelf data toe te voegen (die de app dan upload naar de database)

Zoja, hoe?

Greetz,

Nikooos 03-09-09 19:21

je zou een php scriptje kunnen aanroepen om gegeven in de database te zetten?

XIII 03-09-09 20:44

Misschien kan de Twitter API een inspiratiebron zijn?

Twitterclients lezen & schrijven in feite ook een soort database...

Tim14ww 03-09-09 21:48

Citaat:

Oorspronkelijk geplaatst door psychonikeo (Bericht 347053)
je zou een php scriptje kunnen aanroepen om gegeven in de database te zetten?

Ja maar ik wil zeg maar via een + knop een View aanroepen die je in kan vullen, en als je op verzenden drukt de app de gegevens in de database/xml? zet.


het zelfde princiepe als een registreer systeem zegmaar.

iemand een idee?

Greetz

JWVD 03-09-09 23:20

Je kan via PHP een GET of POST systeem aanmaken, en die gewoon aanroepen vanaf je applicatie. In het PHP script doe je gewoon met de data wat je maar wilt

Tim14ww 04-09-09 00:18

Citaat:

Oorspronkelijk geplaatst door JWVD (Bericht 347144)
Je kan via PHP een GET of POST systeem aanmaken, en die gewoon aanroepen vanaf je applicatie. In het PHP script doe je gewoon met de data wat je maar wilt

Daar zat ik vanmiddag aan te denken, maar hoe doe ik dat dan zo, dat als ik op een knop in mijn app druk, dat hij dan dat script uitvoer?


Greetz en alvast bedankt!

JWVD 04-09-09 00:21

Eerst maak je een IBAction aan in je .h, daarna koppel je hem aan je button in Interface Builder. Dan kan je in je .m doen wat je wilt :)

Tim14ww 04-09-09 00:25

Citaat:

Oorspronkelijk geplaatst door JWVD (Bericht 347165)
Eerst maak je een IBAction aan in je .h, daarna koppel je hem aan je button in Interface Builder. Dan kan je in je .m doen wat je wilt :)


Ja ik weet hoe je een IBAction gebruikt, maar hoe roep ik dat script aan dan?

JWVD 04-09-09 00:33

Objective C – HTTP POSTor GET Data

Is dat wat?

Tim14ww 05-09-09 01:26

Citaat:

Oorspronkelijk geplaatst door JWVD (Bericht 347169)

Hmm ja, ik snap er alleen niet zo veel van,

zou er iemand (of is er ergens) een voorbeeldje kunnen maken?

Ik zou dit zeer op prijs stellen.

Greetz,

SkyTrix 05-09-09 12:12

Het voorbeeld staat gewoon op die site die Tim14ww gaf.

Tim van Elsloo 05-09-09 13:07

Kijk eens naar de NSData-objects (dataWithContentsOfURL) of naar de NSURLRequest-objects.

(gewoon Googlen)

Tim14ww 05-09-09 15:48

Citaat:

Oorspronkelijk geplaatst door SkyTrix (Bericht 347662)
Het voorbeeld staat gewoon op die site die Tim14ww gaf.

Je bedoeld waarschijnlijk de site die JWVD gaf,

ja daar staat dit:

Code:

ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];

[request setPostValue:@"Ben" forKey:@"first_name"];

[request setPostValue:@"Copsey" forKey:@"last_name"];

[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];

wat moet ik hier nou mee dan?

Er staat nog een link op die website, Link

Maar daar snap ik al helemaal niets van

kan iemand me op het goede spoor zetten?

Greetz,

SkyTrix 05-09-09 15:51

Dat bedoelde ik, ja. Sorry :p

Als je zelfs met de documentatie niet overweg kan, denk ik dat je met iets simpelers moet beginnen te oefenen.

Tim van Elsloo 05-09-09 16:00

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 347741)
Je bedoeld waarschijnlijk de site die JWVD gaf,

ja daar staat dit:

Code:

ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];

[request setPostValue:@"Ben" forKey:@"first_name"];

[request setPostValue:@"Copsey" forKey:@"last_name"];

[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];

wat moet ik hier nou mee dan?

Er staat nog een link op die website, Link

Maar daar snap ik al helemaal niets van

kan iemand me op het goede spoor zetten?

Greetz,

Download: http://github.com/pokeb/asi-http-request/tarball/master en voeg de bestanden die beginnen met ASI toe aan je project, import ze daarna in je header/main file met #import "ASIFormDataRequest.h" (of als je de ASIPostDataRequest nodig hebt dat natuurlijk)

Tim14ww 05-09-09 21:41

Ik kom stukje bij beetje verder, ik ben nu zover dat ik iets heb in de trent van;

[NSString stringWithFormat "http://www.mijnsite.nl/blab.php?a=%@&b=%@

etc etc.

Nu is de vraag,

hoe krijg ik mijn variable (dus wat de gebruiker invult in een tekstveld) in die link, en wat is de post methode ervan?

Greetz.

JWVD 05-09-09 22:00

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 347877)
Ik kom stukje bij beetje verder, ik ben nu zover dat ik iets heb in de trent van;

[NSString stringWithFormat "http://www.mijnsite.nl/blab.php?a=%@&b=%@

etc etc.

Nu is de vraag,

hoe krijg ik mijn variable (dus wat de gebruiker invult in een tekstveld) in die link, en wat is de post methode ervan?

Greetz.

[NSString stringWithFormat:"http://www.mijnsite.nl/blab.php?a=%@&b=%@", variable1, variable2];

Op je eerste vraag... Je weet toch wel wat het verschil tussen GEt en POST is he? :P

Tim14ww 05-09-09 22:12

Citaat:

Oorspronkelijk geplaatst door JWVD (Bericht 347883)
[NSString stringWithFormat:"http://www.mijnsite.nl/blab.php?a=%@&b=%@", variable1, variable2];

Op je eerste vraag... Je weet toch wel wat het verschil tussen GEt en POST is he? :P


sorry het verkeerde gecopy pasted.

Code:

- (IBAction)submit {
        NSString *post = @"key1=val1&key2=val2";
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
       
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
       
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:@"http://www.timvanbeers.nl/blabla.php"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
   
    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn)
    {
        NSLog(@"Gelukt!");
    }
    else
    {
        // inform the user that the download could not be made
    }

Hier ben ik nu achter, maar hoe verander ik die variables naar de variables in de textfields?

greetz

Nikooos 05-09-09 22:13

dan vraag je de waardes van de textfields op en die zet je in een variabele en dan voeg je die variabele in de url..

Heb je wel wat ervaring met objective-c?

Tim14ww 05-09-09 22:19

Citaat:

Oorspronkelijk geplaatst door psychonikeo (Bericht 347887)
dan vraag je de waardes van de textfields op en die zet je in een variabele en dan voeg je die variabele in de url..

Heb je wel wat ervaring met objective-c?

Nee, ik ben net begonnen met het programmeren van iPhone apps,

Hoe vraag ik die waardes op, want het is niet zo verschrikkelijk moeilijk neem ik aan..

Greetz,

Tim van Elsloo 05-09-09 22:40

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 347890)
Nee, ik ben net begonnen met het programmeren van iPhone apps,

Hoe vraag ik die waardes op, want het is niet zo verschrikkelijk moeilijk neem ik aan..

Greetz,

Daarom moet je het dus weten ;), anders begin je eerst met gewoon hele simpele apps maken (NSLog de waarde van een UITextField om te oefenen in dit geval)

Tim14ww 05-09-09 22:44

Citaat:

Oorspronkelijk geplaatst door Tim van Elsloo (Bericht 347892)
Daarom moet je het dus weten ;), anders begin je eerst met gewoon hele simpele apps maken (NSLog de waarde van een UITextField om te oefenen in dit geval)

Nou dat lijkt me niet?

Ik ben nu al zover gekomen, en Ja Tim ik weet hoe je over denkt maar dat heeft hier niets mee te maken ;).

Volgens mij is het gewoon net zo simpel om me even te vertellen hoe ik een UITextField uit te lezen en deze in een variable te zetten..

Greetz,

JWVD 06-09-09 00:15

Maak een IBOutlet, koppel deze aan de UITextField en in je code is naamVanOutlet.text de waarde van het TextField

Tim14ww 06-09-09 13:10

Citaat:

Oorspronkelijk geplaatst door JWVD (Bericht 347913)
Maak een IBOutlet, koppel deze aan de UITextField en in je code is naamVanOutlet.text de waarde van het TextField


Nee okee dat snapte ik, waar ik mee zit, is hoe plaats ik deze in een link, ik heb 2 dingen geprobeerd:

1.

Code:

- (IBAction)submit {
        NSString *post = @"key1=val1&key2=val2";
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
       
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
       
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:@"http://www.timvanbeers.nl/script.php?naam=%@", [namefield text]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
   
    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn)
    {
        NSLog(@"Gelukt!");
    }
    else
    {
        // inform the user that the download could not be made
                NSLog(@"Mislukt!!");
    }
   
}

dan krijg ik de error : Too many agruments to function 'URLWithString:'

2.


Code:

- (IBAction)submit {
        NSString *post = @"key1=val1&key2=val2";
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
       
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
       
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSString stringWithFormat:@"http://www.timvanbeers.nl/script.php?naam=%@",[namefield text]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
   
    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn)
    {
        NSLog(@"Gelukt!");
    }
    else
    {
        // inform the user that the download could not be made
                NSLog(@"Mislukt!!");
    }
   
}
@end

Hier flipt de app als ik op Submit klik in mn app (die dus de IBAction aanroept)

met in de console:

Code:

[Session started at 2009-09-06 13:07:26 +0200.]
2009-09-06 13:07:26.531 Test[30638:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString absoluteURL]: unrecognized selector sent to instance 0xd42af0'
2009-09-06 13:07:26.532 Test[30638:20b] Stack: (
    807902715,
    2505109051,
    808284155,
    807854166,
    807706786,
    807437267,
    6827990,
    6526614,
    6772078,
    6779031,
    10171,
    814709201,
    815110321,
    815119058,
    815114270,
    814813151,
    814722763,
    814748641,
    839148405,
    807687520,
    807683624,
    839142449,
    839142646,
    814752238,
    9252,
    9106
)

IEMAND HELP?

Greetz

Tim van Elsloo 06-09-09 13:46

Dit doe je fout:
Code:

[request setURL:[NSString stringWithFormat:@"http://www.timvanbeers.nl/script.php?naam=%@",[namefield text]]];
Je moet hem eerst naar een NSURL omzetten, dus:
Code:

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.timvanbeers.nl/script.php?naam=%@",[namefield text]]]];

Tim14ww 06-09-09 13:59

Citaat:

Oorspronkelijk geplaatst door Tim van Elsloo (Bericht 348022)
Dit doe je fout:
Code:

[request setURL:[NSString stringWithFormat:@"http://www.timvanbeers.nl/script.php?naam=%@",[namefield text]]];
Je moet hem eerst naar een NSURL omzetten, dus:
Code:

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.timvanbeers.nl/script.php?naam=%@",[namefield text]]]];

Kijk hier heb ik wat aan!

Nu krijg ik alleen in mn PHP script
Code:

(null)
binnen..

Klopt dit of?

Greetz,

Tim van Elsloo 06-09-09 14:01

Citaat:

Oorspronkelijk geplaatst door Tim14ww (Bericht 348028)
Kijk hier heb ik wat aan!

Nu krijg ik alleen in mn PHP script
Code:

(null)
binnen..

Klopt dit of?

Greetz,

Jep, klopt helemaal, want waarschijnlijk is je UITextField leeg, als ie gevuld is krijg je bv Tim, of Gerard etc.


Alle tijden zijn GMT +2. Het is nu 13:02.