Toon posts:

[PHP] Doe x als waarde y in dropdown is gekozen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0Henk 'm!

  • Zinu
  • Registratie: Augustus 2006
  • Laatst online: 07-06 16:17

Zinu

dat is gewoon hoe ik rol

Topicstarter
Ik ben een site aan het bouwen waarin ik tickets/vragen kan plaatsen en daarvan het status en dergelijke bij kan houden. Een micro helpdesk dus. Nu wil ik graag, wanneer ik in de dropdown box van Status de waarde 'Afgemeld' kies, meteen een buttonclick plaatsvindt die de huidige datum en tijd in twee aparte velden zet.

Ik heb dus een dropdown box Status:
code:
1
2
3
4
5
6
$ddd = mysql_query("SELECT * FROM status ORDER BY statusid ASC") or die(mysql_error()); 
     while($info = mysql_fetch_object($ddd)) {
      $statusid = $info->statusid;
      $naam = $info->naam;
        echo "<option value='".$statusid."'>".$naam."</option>"; }
        echo "</select><br><br>";

Deze code populeert het status veld met statusnamen uit mijn database als Open, In Behandeling, Afgemeld en dergelijke.

Daarnaast heb ik een button die twee velden (einddatum en eindtijd) populeert met de huidige datum en tijd:
code:
1
echo "<center><input type=\"button\" value=\"Huidige tijd en datum\" onclick='document.getElementById(\"einddate\").value=\"".date("Y-m-d")."\"; document.getElementById(\"eindtime\").value=\"".date("H:i:s")."\"'></center>";


Daarnaast nog de Submit button die de INSERT query uitvoert.

Wat ik dus wil is wanneer een gebruiker in de dropdown box 'Afgemeld' selecteert, automatisch een buttonclick uitgevoerd wordt op de achtergrond, en de huidige datum en tijd in de twee velden gezet wordt.
Dit scheelt weer een click, en wanneer de gebruiker het vergeet aan te klikken is dat geen ideale situatie.

Is dit uberhaupt mogelijk, of moet dit zelfs gebeuren vóórdat de submit-actie uitgevoerd wordt?

Acties:
  • 0Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 13:10
Dat lijkt me gewoon een onchange javascript event op je <select> waarna je met GetElementById oid de options[selectedIndex].value de geselecteerde waarde op kunt vragen en daar wat mee doen? Of begrijp ik de vraag verkeerd?

Acties:
  • 0Henk 'm!

  • NiteSpeed
  • Registratie: Juli 2003
  • Laatst online: 11:23
Zonder page refresh gaat dit met PHP alleen niet lukken. Je zal JavaScript nodig hebben om de dropdown change op te vangen en aan de hand daarvan acties ondernemen.

Acties:
  • 0Henk 'm!

  • _naranya
  • Registratie: Oktober 2010
  • Laatst online: 14:14
Je kunt toch ook tijdens je pageload meteen de datum en tijd invullen in de input velden?
Of moeten deze alleen gevuld worden wanneer je 'Afgemeld' selecteerd?
Wat is het nut van de button, zet deze alleen de datum en tijd in de juiste velden?

Moeten deze datum + tijd aangepast kunnen worden door de gebruiker? Anders vul deze gewoon serverside in met PHP, na het submitten van het formulier.

Zo niet dan kun je een onchange event toevoegen aan je dropdown list zoals Avalaxy al zei.

Acties:
  • 0Henk 'm!

  • Zinu
  • Registratie: Augustus 2006
  • Laatst online: 07-06 16:17

Zinu

dat is gewoon hoe ik rol

Topicstarter
Er moet alleen een button click plaatsvinden als het status op 'Afgemeld' komt te staan. Deze button zet de huidige datum in veld 1 (sluitingsdatum van het ticket), en de huidige tijd in veld 2 (sluitingstijd van het ticket). Wanneer het status op, bijvoorbeeld, In Behandeling wordt gezet, is het ticket natuurlijk niet gesloten en moet er dus ook nog geen sluitingsdatum- en tijd aan gehangen worden. onChange is dan geen optie denk ik.
Deze tijd mag niet aangepast worden door de gebruiker; Afgemeld = Afgemeld, dan is het ticket gesloten.

Maar hoe krijg ik dat dan serverside voor elkaar? De inhoud van de dropdownbox wordt elke keer bij het openen van de pagina gevuld door het resultaat van een query. Dit resultaat is dan wel telkens hetzelfde (afgemeld is altijd het laatste status), maar toch, het is niet statisch.

Dit niet via een query doen is niet mogelijk, want ik moet statusmogelijkheden kunnen toevoegen en deze moeten dan terugkomen in de lijst.

Acties:
  • 0Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 13:10
Je kan toch gewoon als je het element opvraagt in Javascript kijken of die de waarde 'afgemeld' heeft, zo ja dan set je het datumveld, zo niet dan doe je niks?

Acties:
  • 0Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 13:25

MueR

Moderator Devschuur®

is niet lief

Ik verplaats dit topic even naar Programming.

Het is toch niet zo enorm moeilijk? Je weet welke status "afgemeld" is, dan doe je in de postback de datum toch gewoon in je query zetten? Waarom je moeilijk wil doen met een veld op je form wat toch niet zelf ingevuld mag worden is me een raadsel.

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!


Acties:
  • 0Henk 'm!

  • Zinu
  • Registratie: Augustus 2006
  • Laatst online: 07-06 16:17

Zinu

dat is gewoon hoe ik rol

Topicstarter
Zo is het gelukt. Bedankt MueR. Ik heb nu gewoon:
code:
1
2
3
4
if ("".$_POST["status"]."" == "5") {
      <query A>
else {
      <query B>

[Voor 4% gewijzigd door Zinu op 12-06-2011 16:51]


Acties:
  • 0Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 13:37

Ventieldopje

I'm not your pal, mate!

Waarom die dubbele quotes bij $_POST? Die kun je gewoon weg halen ;)

[Voor 8% gewijzigd door Ventieldopje op 12-06-2011 16:55]

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0Henk 'm!

  • Zinu
  • Registratie: Augustus 2006
  • Laatst online: 07-06 16:17

Zinu

dat is gewoon hoe ik rol

Topicstarter
Ach, om zoiets maak ik me niet druk :) Maar je hebt wel gelijk natuurlijk.

Acties:
  • 0Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 13:10
Zinu schreef op zondag 12 juni 2011 @ 16:51:
code:
1
2
3
4
5
6
if ($_POST['status'] == 5) {
      <query A>
}
else {
      <query B>
}
5 is ook een integer, geen string. Dus wederom geen quotes er omheen. En je moest je haakjes nog afsluiten ;)

[Voor 23% gewijzigd door Avalaxy op 12-06-2011 17:25]


  • phex
  • Registratie: Oktober 2002
  • Laatst online: 10:53
Zinu schreef op zondag 12 juni 2011 @ 17:04:
Ach, om zoiets maak ik me niet druk :)
Het lijkt mij niet ideaal als je standaard extra karakters toevoegd. De leesbaarheid wordt er niet beter op. Maar zoals boven al aangegeven dat is niet het probleem.

Serieus, netjes je code opmaken scheelt je zoveel in the long run... dus wel druk om maken ;)
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee