Ga naar inhoud
  • 0

CWP Zoeken op apestaartje


rgaros

Vraag

Geplaatst:

Lezers,

 

Graag jullie hulp bij het volgende. Moet via CWP FMSA7 zoeken op een gebruikersnaam die mogelijk een @ teken bevat, via een input veld dus niet vast gecodeerd.

 

De technieken die destijds in CDML gebruikt konden worden werken echter niet. En de methode die in FM Knowledgbase artikel 5266 wordt gegeven, werkt alleen voor vast gecodeerde zoekacties, niet met input velden.

 

Wie heeft er een tip?

 

Groet,

René

7 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

Hoi René,

 

Veronderstellend dat je een tranfomatie uitvoert met XSLT, kan je de XPath functie 'contains(string,string)' gebruiken, waarvan het resultaat waar is indien de 2de string in de 1ste voorkomt.

 

 

gr Jeroen

  • 0
Geplaatst:

Hallo Jeroen,

 

Veronderstellend dat je een tranfomatie uitvoert met XSLT, kan je de XPath functie 'contains(string,string)' gebruiken, waarvan het resultaat waar is indien de 2de string in de 1ste voorkomt.

 

Als is het goed begrijp vergelijkt die functie alleen twee teksten die al bekend zijn. Ik probeer echter vanuit een .xsl bestand te zoeken in een bepaald FM veld naar een tekst die mogelijk een apestaart bevat. In de normale Blader modus zou dat b.v. info\@reneros.biz zijn als ik naar info@reneros.biz wil zoeken. Een gebruiker voert in het input veld zijn/haar e-mail adres in, en die wil ik dan zoeken en vinden.

 

Groet,

René

  • 0
Geplaatst:

... Poor me, ik had begrepen dat je het omgekeerde wou doen ... :?

 

Het probleem met CWP met XSLT is dat je - in tegenstelling tot CDML vroeger - data uit je velden op je HTML form niet zomaar aan de FileMaker WPE kunt doorgeven. Een simpele submit van een formulier met POST of GET werkt dus niet. Toch niet voor zover mijn kennis van CWP met XSLT reikt.

 

Je zal dus via een client-side script (Javascript bv.) op de getoonde pagina de veldinhoud moeten ophalen, deze in een variabele opslaan en dan scriptmatig je URL construeren zoals je een voorbeeld vindt in het door jouw aangehaalde artikel.

 

Nota bene: mogelijk moet je de apestaart met %40 URL-encoderen

 

Veel geluk, Jeroen

  • 0
Geplaatst:

Wel,

 

Zoals ik zei, zo'n expert ben ik niet op het vlak van CWP-XSLT. Maar na enig napluizen van de XSLT Starter Solution http://www.filemaker.com/downloads/misc/xslt_starter_solution_fmsa.zip blijkt hetgeen ik in mijn vorige mail beweerde niet te kloppen.

 

Je kan wel degelijk HTML forms gebruiken op de oude wijze, waarbij je de URL query parameters gewoon in de form input elements stopt. Hieronder een voorbeeld:

 

...

 

 

 

 

...

 

[FMPfieldName] is dan de exacte veldNaam zoals die voorkomt in je database en waarop je dus wil zoeken.

[stylesheet] is de naam van de stylsheet die iets doet met het resultaat.

[grammar] is best "fmresultset"

 

Groeten, Jeroen

  • 0
Geplaatst:
Je kan wel degelijk HTML forms gebruiken op de oude wijze, waarbij je de URL query parameters gewoon in de form input elements stopt.

 

Dat was me bekend en tot zover was ik ook gekomen. Op deze wijze een inlogscherm gemaakt waarmee op gebruikersnaam en wachtwoord gezocht kan worden. Sommige gebruikers nemen hun e-mail adres als gebruikersnaam en op de @ kan niet gezocht worden.

 

Met JavaScript, zoals hier gesuggereerd, heb ik het inmiddels opgelost.

 

In de FORM tag kan bij de onSubmit attribute dit stukje JavaScript geplaatst worden:

 

..value = ..value.replace(/@/gi, '\\@');

 

Die vervangt alle @ door \@ zodat het e-mail adres gezocht en gevonden wordt door FM.

Aldoende bleek dat in JavaScript de \ een speciale betekenis heeft en dubbel geplaatst moet worden om het als teken te krijgen...

 

Groet,

René

  • 0
Geplaatst:
Bedankt voor de tip René. Deze zoektocht heeft ook mij een en ander bijgebracht. :D8)

 

Jij ook bedankt. Soms is het al voldoende om je ideeen uit te spreken en al doende dingen te realiseren. Maar als er iemand klankbord met tegengas is: nog beter!

 

Groet,

René

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...