Jump to content
  • 0

GTRR in php


TheMisfit

Question

In een php-oplossing toon ik records en gerelateerde data d.m.v. portalen.

Ik kan ook perfect naar een gerelateerd record surfen dankzij een link waarin de recordID werd opgenomen.

Echter als ik dat doe, bestaat mijn "found-set" vanzelfsprekend slechts uit 1 enkel record en kan ik niet verder bladeren door de andere gerelateerde records.

 

Ik zoek dus eigenlijk naar een manier om een GTRR stap te implementeren d.m.v. PHP.

Ik kan me moeilijk voorstellen dat niemand anders daar behoefte aan gehad heeft. Alle inzichten zijn welkom want ik zit hopeloos vast.

Link to comment

5 answers to this question

Recommended Posts

  • 0

Hoi,

 

Ben nog maar aan het verdiepen in PHP en dus nog een beginneling.

 

Maar het eerste wat in mijn hoofd komt is of:

 

Met een newFindCommand en getRecords()

 

de gegevens in een erray te plaatsen en vervolgens kun je die met next en previous tonen.

 

Je zou ook alleen de ID's in een variable kunnen stoppen en een sessie en die dan gebruiken voor next en previous met behulp van GET methode

 

Groet,

 

WJ

Link to comment
  • 0

Met de getRelatedSet() method van het Record object schiet je altijd raak. Dit geeft je een array terug met Record objects van ENKEL de gerelateerde records.

 

Als argument geef je de naam van de portal door. Belangrijk is dat die portal ook effectief op de layout staat, waar je je oorspronkelijke zoekopdracht op baseerde (of opgaf met de setResultLayout() method van het Command object)

 

- Jeroen

Link to comment
  • 0

Met de getRelatedSet() method van het Record object schiet je altijd raak. Dit geeft je een array terug met Record objects van ENKEL de gerelateerde records.

 

Volgens mij is dat niet het probleem, dat is gelukt. Het tonen van de gerelateerde data in een table is volgens mij gelukt als ik de vraag goed lees. Alleen vervolgens wil hij naar 1 van die records en die door bladeren.

 

Ik dacht dan aan een zoek te doen of de id via getRelatedSet op te slaan ?

 

Gr,

 

WJ

Link to comment
  • 0

Ah ja, ik had idd de vraag niet goed gelezen :?

 

Stel dat je een FMP layout hebt obv van parent tabel met child records in portal. Dan kan je werken met een geneste loop:

- 1 loop om je set parent records te doorlopen

- 1 loop voor elke parent record, de subset van children in je portal te doorlopen en op je pagina te tonen

 

Om je found set in de parent tabel mee te nemen van de ene naar de andere pagina, gebruik je ofwel een array met bv. id's in een sessievariabele, ofwel moet je een manier zoeken om je zoekopdracht te bewaren. Het laatste is uiteraard efficienter, het eerste is enkel doenbaar bij kleine recordsets...

 

Dit neemt niet weg dat je niet mag verwachten dat een webapplicatie even "rijk" en flexibel kan zijn als de desktop FileMaker versie. Door de eigenheid van webpagina's, is het helaas zo dat de server z'n klant "vergeet" na het doorsturen van records, en je moet dan manieren bedenken om found sets te doen onthouden. Anderzijds scheppen webpagina's oneindig veel andere mogelijkheden inzake interface.

 

Jeroen

Link to comment
  • 0

Mannen, bedankt om me in de juiste richting te duwen

 

Ik koppel nu aan elke portaalrij een link waarmee ik:

 

a) naar de gerelateerd table (lees layout) ga

b) een find op de parentID uitvoer

c) een range definieer skip=portaalrijnummer/max= 1

 

daarna hoef ik de skip maar te incrementern/decrementeren om te browsen

 

Het gerelateerde veld parentID dat zich op de child-layout moet bevinden, filter ik gewoon weg uit de PHP-loop die de velden op het scherm zet.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...