[PHP] GET Variabele aanpassen voor posten...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na een aantal dagen allerlei sites te hebben doorzocht en ook hier op tweakers zo'n beetje alle gerelateerde topics te hebben doorzocht heb ik toch maar besloten mijn vraag te posten.

Bij voorbaat: indien deze vraag in een of andere manual kan worden teruggevonden geef dan ff de link naar de pagina binnen de manual en dan zoek ik het verder zelf wel uit.

Mijn vraag:
Ik heb een zoekformulier waarbij via een GET procedure variabelen met waardes worden toegevoegd aan de url van de weergave-pagina zodat alleen de records zichtbaar worden die voldoen aan die parameters. Dit werkt verder allemaal uitstekend.

Mijn vraag is nu of ik een waarde die ik ingevuld heb op het formulier (bijv. 23/07/2004 als datum) kan omzetten voor het moment dat deze verzonden wordt.

Nu is het resultaat van de url: weergavepagina.php?datum=23/07/2004
Ik wil dat de bezoeker in kan tikken 23/07/2004 en dat hij die doorgeeft als datum=20040723 (dit ivm. met de techniek die ik gebruikt heb voor de opslag van datum velden, hier kom ik ook niet omheen). De functie voor het omzetten van de datum in PHP lukt me wel, ik weet alleen niet waar ik deze moet plaatsen zodat hij dit doet. Ik weet niet eens of het überhaupt mogelijk is (vast wel)

Kan iemand mij hier mee helpen?

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Dat zul je met javascript moeten doen. Maak een functie die de waarden aanpast in het gewenste formaat en roep die met het onclick attribuut aan.
Overigens zou je aan serverside kant ook vrij tolerent kunnen zijn. Dan kun je ervoor zorgen dat zowel 20040712, 2004/07/12, 2004-07-12 of wat dan ook ook allemaal werken. Zorg dat je de variabelen in het juiste formaat krijgt voor je de rest van het script runt. Je zult de input toch wel (willen) valideren.

[ Voor 52% gewijzigd door T-MOB op 24-07-2004 15:12 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Als het omzetten lukt, wat is dan het probleem?

PHP:
1
$datum_nieuw = mijnFunctieDieWerkt($_GET['datum']);

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Onbeforesubmit event o.i.d. afvangen met JS?

Heb je verder geen invloed op het PHP script? Want daarin kan je het natuurlijk ook aanpassen.

Acties:
  • 0 Henk 'm!

  • paulus4ever
  • Registratie: November 2002
  • Laatst online: 16-08 22:07
Er bestaat een functie als:
PHP:
1
2
3
<?
$datum_gestript = stripslashes($_GET['datum']);
?>

Maar de werkt alleen voor backslashes zover ik weet....

Dus nu is mijn vraag bestaat er niet een functie binnen php die wel met slashes werkt ?

[ Voor 26% gewijzigd door paulus4ever op 24-07-2004 15:15 ]


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 19-09 22:02

krvabo

MATERIALISE!

Je zou ook nog kunnen exploden en daarna de stukken weer aan elkaar plakken, maar iets zegt me dat dat niet de mooiste manier is.
http://nl3.php.net/manual/nl/function.explode.php

[ Voor 3% gewijzigd door krvabo op 24-07-2004 15:16 ]

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

PHP:
1
2
3
<?php
$datum = str_replace("/", "", $datum);
?>
?

Das dus alleen de / weghalen, omzetten zou je met preg_replace nog kunnen doen behalve exploden zoals hierboven gezegd wordt.

[ Voor 59% gewijzigd door Pyrus op 24-07-2004 15:17 ]

LinkedIn


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
quote: Johnny
Als het omzetten lukt, wat is dan het probleem?

PHP:
1
2
3
 <?
$datum_nieuw = mijnFunctieDieWerkt($_GET['datum']);
?>
Zover was ik ook al, maar waar plaats ik dit in de code, zodat deze nieuwe variabele ook meegegeven wordt?

De zoekpagina is gewoon een pagina met een form erin met een aantal velden die via een get formulier worden doorgegeven:
code:
1
<form name="zoeken" action="/weergavepagina.php" method="get">


p.s. voor die andere reacties. Het omzetten van de datum is me al gelukt (zoals ik al zei)

[ Voor 13% gewijzigd door Verwijderd op 24-07-2004 15:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik zou ook gaan voor de javascript check, en indien het fout is geef je gewoon een foutmelding in je formulier terug toch? :D

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:18

crisp

Devver

Pixelated

dd/mm/yyyy levert altijd ambiguiteiten op en is ook geen standaardnotatie in tegenstelling tot mm/dd/yyyy wat ook geldige input is voor het datum-object in javascript:
JavaScript:
1
2
3
4
5
6
7
var date = new Date('07/23/2004');
var year = date.getFullYear().toString();
var month = date.getMonth() + 1; // month begint bij 0 in JS
month = ('0' + month).substr(-2);
var day = date.getDate();
day = ('0' + day).substr(-2);
alert(year+month+day);


mmmz, en ik zie meteen dat IE substr niet goed geimplementeerd heeft :(

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • dirkpostma
  • Registratie: Juni 2001
  • Laatst online: 18-09 21:13
ik weet alleen niet waar ik deze moet plaatsen zodat hij dit doet. Ik weet niet eens of het überhaupt mogelijk is (vast wel)
Leg eens uit wat je hier precies mee bedoelt...

Om toch alvast iets toe te voegen: om te voorkomen dat er onduidelijkheden zijn aangaande dd-mm-jjjj of mm/dd/jjj is het beter om de gebruiker 3 aparte velden in te laten vullen. Het maakt dan niet uit of hij 12/08/2004 of 12-08-2004 typt, of whatever (12 augustus of 8 december :P).

Zoiets bedoel ik:

formulier.html:
code:
1
2
3
4
5
6
7
8
9
10
11
<html>
  <body>
    <form action="weergave.php" method=get>
      Voer hier een datum in (dd-mm-jjjj):<br> 
      <input type=text name=dag>
      <input type=text name=maand>
      <input type=text name=jaar>
      <input type=submit>
    </form>
  </body>
</html>


weergave.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
  $dag = (int)$_GET['dag'];
  $maand = (int)$_GET['maand'];
  $jaar = (int)$_GET['jaar'];

  // doe whatever je wilt met deze gegevens... :?
  $query = "
    SELECT veld1,veld2
    FROM tabel
    WHERE dag = '$dag'";
?>
Pagina: 1