Selected Datepickter datum doorsturen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Software developer - senior

Functie omschrijving Voor een echt softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking voor de afdeling Software Development! Ben jij op zoek naar een werkgever waar meerdere software developers werken aan interessante projecten? Ben jij op zoek naar een werkgever waar je onderdeel wordt van een team dat echt passie heeft voor het ontwikkelen van software? Dan ben je hier aan het juiste adres! Als softwareontwikkelaar kom je terecht bij een onafhankelijk, door kwaliteit gedreven, doortastend en daarbij op een Agile wijze werkend bedrijf. Ben jij een expert in het vertalen van Componenten van Functionaliteit naar Business lagen?

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Senior Product Developer

Functieomschrijving Als senior Product Developer ben je verantwoordelijk voor bestaande mobiliteitsproducten en de ontwikkeling van nieuwe mobiliteitsconcepten. Met behulp van diverse klantonderzoeken, klantsessies en salesmeetings zorg je ervoor dat je de veranderende mobiliteitsbehoeften in de markt kent. Hier speel je op in door innovatieve, flexibele, efficiënte en duurzame vervoersoplossingen te bedenken, te ontwikkelen, te implementeren en uiteindelijk samen met Sales en Marketing collega’s in de markt te zetten. Je initieert en neemt deel aan (internationale en afdeling overschrijdende) projecten, vaak in de rol van projectleider. In die rol bewaak je de voortgang, coördineer je de activiteiten en zorg je voor

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Front end developer

Functie Binnen de functie van Front-end developer werk je mee aan uitdagende klantprojecten. In teamverband werk je aan de voorkant van onze state-of-the-art portaal oplossingen en apps. Dit alles gebeurt in een multidisciplinaire omgeving waarbij je de ruimte hebt om te sparren, je ideeën scherp te stellen, en waar je met de benodigde kennis en ervaring om je heen altijd terecht kunt bij je collega’s voor vragen en ondersteuning. Meestal werk je vanuit ons kantoor maar we bieden ook alle faciliteiten om thuis te kunnen werken. Voor sommige projecten ga je mee naar de klant, wellicht zelfs in het buitenland!

Bekijk vacature »

.NET Developer

Dit ga je doen Tot jouw takenpakket behoort onder andere: Webapplicaties ontwerpen, bouwen, testen en implementeren in .NET/C#.; Ontwikkelen, implementeren en beheren van maatwerkapplicaties; Onderhouden en beheren van standaardpakketten; Onderzoeken en beoordelen van nieuwe technieken. Hier ga je werken Als .NET ontwikkelaar kom je te werken bij een grote semioverheidsinstelling in Nijmegen. De organisatie staat garant voor het leveren van onderwijs en les- en onderzoeksmateriaal voor duizenden betrokkenen. De organisatie wil bijdragen aan een gezonde, vrije wereld met gelijke kansen voor iedereen. Binnen de teams hangt een open en collegiale cultuur met veel aandacht voor een prettige en sociale werksfeer.

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Pagina: 1 2 volgende »

Johnny Cash

Johnny Cash

01/05/2015 03:11:38
Quote Anchor link
Goedenavond,

Ik zit met een probleem en ben daarmee tot in de late uurtjes (03:10) bezig geweest.

Ik gebruik de bekende Datepicker om een datum te selecteren.
Deze werkt zoals het hoort.

Maar ik wil nu een extra functie bouwen die het volgende doet:
Wanneer er in de Datepicker de datum "zondag 3 mei 2015" wordt aangeklikt (zondag is normaal gesproken niet aanklikbaar) moet er een extra hidden formfield worden gegenereerd.

De bewuste zondag 3 mei 2015 maak ik beschikbaar via:
var openDates = [[05,03,2015]];

Voor alle overige dagen (maandag t/m zaterdag) wordt sowieso de aangeklikte datum doorgegeven aan:
$("input[name='eventdate']").val(dateText);

Nu wil ik dat er voor de gewenste zondag 3 mei 2015 een speciale input field hebben.
Dus wanneer deze datum wordt aangeklikt moet er een nieuwe <input type='hidden' name='specialsunday' /> worden aangemaakt met daarin de waarde value='1'.

Vervolgens wil ik via een AJAX post de waarde van het veld 'specialsunday' doorsturen naar een ander php script welke controleert of er een specialsunday (3 mei 2015) is aangeklikt. Zo ja dan wordt er een melding getoond op het scherm. Die melding kan bijvoorbeeld zijn "Let op voor zondag 3 mei 2015 betaald u een extra toeslag".

Hoe kan ik dit het eenvoudigst realiseren?
 
PHP hulp

PHP hulp

26/05/2026 14:52:59
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 11:49:07
Quote Anchor link
Ik zou geen hidden veld aanmaken omdat je hier het berekenen van extra toeslag niet van af wilt laten hangen. Stel dat ik via een browsertool dat hidden veld er weer uitfiets, dan zou dat niet tot gevolg moeten hebben dat de toeslag niet berekend wordt.

Vertrouw. Nooit. User. Input.

Je wilt te allen tijde de "controle" aan jouw zijde houden. Hierbij moet je ook zorgen dat je de code voor deze controle eenmalig schrijft. Vervolgens voer je deze check (waarbij je dus in beide gevallen refereert aan dit ene zelfde stuk code) op twee plaatsen uit:
- in de AJAX-call, (ENKEL) om een gebruiker hierover in te lichten
- in de verdere verwerking van je formulier, voor het daadwerkelijk verrekenen van een eventuele toeslag
 
Johnny Cash

Johnny Cash

01/05/2015 12:30:20
Quote Anchor link
Bedankt Thomas van den Heuvel,

Het is mij alleen nog niet helemaal duidelijk hoe ik dat met een correcte code kan bewerkstelligen...

Ik heb het volgende staan, wat werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
onSelect: function(dateText, inst) {
   $("input[name='eventdate']").val(dateText);
   $("#alternatedate").fadeIn();

   $.post( "/savedatum.php", { selecteddate:dateText } );
}


Hierin wordt wel de aangeklikte datum toegevoegd aan het formulierveld "eventdate" en deze wordt als uitgeschreven datum getoond in #alternatedate.
Ook wordt de geselecteerde datum via de post naar het savedatum.php script gestuurd (hierin wordt de datum toegevoegd in een database tabel).

Echter wat ik als resultaat wil hebben, is dat op de formulier pagina ook direct de extra toeslag wordt berekend. Dit doet hij nu niet omdat de waarde van het "eventdate" formulierveld niet op de formulierpagina via ajax kan doorsturen naar het script waarin het totaalbedrag wordt berekend.

Onderstaande stukje code stuurt waarden van het formulier door naar het berekentotaal script, hierin is .selecteddate de class binnen het "eventdate" formulierveld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform  input[type="hidden"].selecteddate').change(function(){berekentotaal();});
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 13:23:54
Quote Anchor link
Quote:
Dit doet hij nu niet omdat de waarde van het "eventdate" formulierveld niet op de formulierpagina via ajax kan doorsturen naar het script waarin het totaalbedrag wordt berekend.

Dat zou wel de makkelijkste plaats zijn, je kunt dan de eerdergenoemde check ook uitvoeren in berekentotaal.php.

Waarom kun je deze waarde niet doorsturen? De eventdate is toch gewoon onderdeel van het formulier? Waarom lukt het versturen van de datum naar savedatum.php dan wel? Gaat het om meerdere datums, of slechts een?
 
Johnny Cash

Johnny Cash

01/05/2015 15:16:37
Quote Anchor link
Waarom de waarde niet goed wordt doorgestuurd vanuit de OnSelect van Datepicker is voor mij dus een raadsel.

De situatie meer specifiek is als volgt:

1. ik heb een pagina/script formulier.php, hierop staat de Datepicker om een datum te selecteren en dit werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
echo "<div id='datepicker' class='deDatepicker'></div>";
echo "<input type='hidden' name='eventdate' class='selecteddate' />";
echo "<input type='text' id='alternatedate' class='showselectedbezdate' readonly />";

echo "<div id='showtotaal'></div>";

in de tweede echo moet de datum worden toegevoegd die is aangeklikt (werkt niet!).
in de derde echo wordt de datum getoond die is aangeklikt (dit werkt!).
in de vierde echo moet een toeslag bedrag komen wanneer de aangeklikte datum zondag 3 mei is zonder dat de hele pagina gerefreshed hoeft te worden.

Over waarom de tweede echo niet werkt tast ik dus nog in het duister. Hierin wordt alleen een datum getoond die is voorgeselecteerd voordat er op de Datepicker datum wordt geklikt.

2. het versturen van de datum naar savedatum.php lukt wel omdat dit gebeurd in de Datepicker functie. Het stukje javascript van de Datepicker staat in een speciaal javascript bestand.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
onSelect: function(dateText, inst) {
   $("input[name='eventdate']").val(dateText);
   $("#alternatedate").fadeIn();

   $.post( "/savedatum.php", { selecteddate:dateText } );
}


3. op de pagina/script formulier.php staat onderin ook een ajax stukje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform  input[type="hidden"].selecteddate').change(function(){berekentotaal();});


Dit stukje code staat dus op de formulier.php pagina en moet de waarde van .selecteddate sturen naar berekentotaal.php wanneer de waarde van het formulierveld .selecteddate veranderd.

Dit werkt niet goed omdat in het veld van de eventdate niet de reallife aangeklikte datum wordt opgenomen...
Ik moet dus op de formulier.php pagina een stukje code hebben die iets doet zoals:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if($_POST["eventdate"]=="2015-05-03")
{
  // bereken de toeslag
}else{
  // geen toeslag berekenen
}


De uitkomst van die if constructie moet dan zonder refreshen getoond worden op de formulier.php pagina.

Ik hoop dat ik de situatie nu goed in beeld heb gebracht.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 15:38:59
Quote Anchor link
Ugh, waarom echo'd iedereen statische HTML :p.

Zet alle attribuut waarden tussen "dubbele quotes".

Weet je zeker dat je geen JavaScript foutmeldingen krijgt? Ook al is de constructie (met enkele quotes) niet helemaal juist zou dit nog steeds moeten werken.
 
Johnny Cash

Johnny Cash

01/05/2015 15:50:42
Quote Anchor link
In het stukje javascript van de Datepicker staat verder geen fouten. Of ik moet er na 100 keer lezen overheen kijken...
Ik heb de attributen voor de correctheid nu ook tussen dubbele quotes gezet, maar nog steeds wordt er niet gedaan wat ik graag zou willen.

Toevoeging op 01/05/2015 15:58:02:

Ik heb op verschillende posites binnen de Datepicker javascript het volgende geplaatst en hiermee krijg ik wel de geselecteerde datum te zien als Alert message:
alert(dateText);

En de waarde die daar wordt getoond moet dus simpelweg direct in het eventdate formulierveld worden gestopt...
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 16:04:16
Quote Anchor link
Quote:
In het stukje javascript van de Datepicker staat verder geen fouten. Of ik moet er na 100 keer lezen overheen kijken...

Je moet niet naar code kijken, je moet kijken naar wat je browser je vertelt. Als je JavaScript onderweg ergens breekt om wat voor reden dan ook doet je code vervolgens niets meer.

Zonder complete code wordt dit een beetje lastig.

is dateText een object toevallig (in plaats van een string)?
wordt de naam "eventdate" meerdere keren gebruikt?
heeft je HTML syntax-fouten?
staat het inputveld wel binnen je form-tag?

Ik kan zo blijven raden wat er fout is natuurlijk :p.
 
Johnny Cash

Johnny Cash

01/05/2015 16:23:55
Quote Anchor link
Mijn kennis in javascript is niet optimaal, daarom kom ik er waarschijnlijk ook niet uit.

dateText wordt alleen hier gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
onSelect: function(dateText, inst) {
   $("input[name='eventdate']").val(dateText);
   $("#alternatedate").fadeIn();

   $.post( "/savedatum.php", { selecteddate:dateText } );
}


De "eventdate" wordt gewoon één keer gebruikt en staat ook binnen de form-tag ;)
HTML heeft verder geen syntax fouten.

Laat ik de vraag anders stellen. Hoe zou jij het bovenstaan (wat ik wil) realiseren binnen de code die ik nu heb.
Mijn punt is dat eigenlijk alles werkt zoals het hoort alleen dat stukje zoals hierboven beschreven.

Wat ik denk wat fout gaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform  input[type="hidden"].selecteddate').change(function(){berekentotaal();});


Dat hierin niet wordt gezien dat het input veld .selecteddate veranderd ofzo...

Toevoeging op 01/05/2015 16:52:57:

Ik heb weer een controle uitgevoerd.
Ik heb van de hidden input formfield "eventdate" een text input formfield gemaakt zodat ik kan zien wat er in komt te staan nadat de er een datum is aangeklikt via de Datepicker.

Als ik op zondag 3 mei 2015 klik komt er netjes 2015-05-03 in de input formfield te staan "eventdate".
Dit formulierveld wijzigt dus wel.

Ik begin echt te denken dat
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform  input[type="hidden"].selecteddate').change(function(){berekentotaal();});

niet overweg kan met een formulierveld die via post callback wordt gevuld vanuit javascript.
kan dat kloppen?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 17:04:17
Quote Anchor link
Waarom zou je dit via een class willen doen? Doe dit via de name of een id.

Daarnaast, ik neem aan dat je dit in een $().ready(function() { ... }) block hebt staan om er verzekerd van te zijn dat je DOM en dergelijke ingeladen zijn?

Ik ben even een eigen variant aan het opzetten om te zien wat er mogelijk mis kan gaan, maar ben nog niet klaar.
 
Johnny Cash

Johnny Cash

01/05/2015 17:13:47
Quote Anchor link
Wanneer ik op de bewust zondag 3 mei klik en vervolgens de pagina refresh komt wel de toeslag melding tevoorschijn via de waarde in "eventdate", maar ja de kunst van ajax is uiteraard dat dit gebeurd zonder refresh...

Ik ben ook nog steeds zoekende en probeer nu veel uit en probeer ook het één en ander uit te sluiten.
En ja de function berekentotaal() staat tussen een $().ready(function() { ... }) block.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 17:27:59
Quote Anchor link
Kijk eens in je netwerktab, wat wordt precies gePOST?

Klopt die slash wel voor /berekentotaal.php? Levert dat geen 404 op ofzo?

EDIT: heeft het inputveld met id "eventdate" ook een attribuut "name"?

---

EDIT: ik weet niet hoe je code er verder uitziet, maar je kunt ook prima die mededeling in je berekeningsterugkoppeling zetten, zoiets dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<form id="processform">
<input type="text" id="eventdate" name="eventdate" />
</form>

<div id="showtotaal"></div>

<script type="text/javascript">
//<![CDATA[
    $().ready(function() {
        // callback function for filtering available days
        function availableDates(d) {
            var date = $.datepicker.formatDate('yy-mm-dd', d);
            var enabled = true;
            var exceptions = ['2015-05-03'];

            // first, disable weekends
            var noWeekends = $.datepicker.noWeekends(d);
            enabled = noWeekends[0];

            // then check if this is an exception
            if ($.inArray(date, exceptions) > -1) {
                enabled = true;
            }
            return [enabled];
        }

        //
        $('#eventdate').datepicker({
            'dateFormat': 'yy-mm-dd', // yy-mm-dd
            'beforeShowDay': availableDates
        });

        $('#eventdate').change(function() {
            $.post('berekentotaal.php', $('#processform').serialize(), function(html) {
                $('#showtotaal').html(html);
            });
        });
    });
//]]>
</script>


berekentotaal.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
header('Content-Type: text/html; charset=UTF-8');

$specialDates = array('2015-05-03');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // obviously, you need to VALIDATE your data as well...
    echo '<pre>'.print_r($_POST, true).'</pre>';
    if (in_array($_POST['eventdate'], $specialDates)) {
        ?>
<div style="background-color: #ffcccc;"><p>Opgelet: extra toeslag!</p></div><?php
    }
}

?>
Gewijzigd op 01/05/2015 17:44:11 door Thomas van den Heuvel
 
Johnny Cash

Johnny Cash

01/05/2015 17:44:06
Quote Anchor link
Het inputveld heeft als name="eventdate". Aan dit inputveld hangt geen id maar een class die weer in de AJAX call staat. De ID uit onderstaand stukje gebruik ik om een voluit geschreven datum te presenteren in #alternatedate.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
onSelect: function(dateText, inst) {
   $("input[name='eventdate']").val(dateText);
   $("#alternatedate").fadeIn();

   $.post( "/savedatum.php", { selecteddate:dateText } );
}


Dus in eventdate wordt "2015-05-03" gestopt en Zondag, 3 mei 2015 wordt aan #alternatedate gekoppeld.
Met die laatste voluit geschreven datum doe ik verder niets, alleen maar weergave. De waarde van "eventdate" moet via de AJAX call worden doorgestuurd naar berekentotaal.php

Die slash klopt inderdaad. Er wordt naast "input[type="hidden"].selecteddate" ook andere variabelen meegestuurd zoals:
select.soortadres
input[type="text"].emailadres

Dit werkt overigens goed. Alleen de waarde uit "eventdate" (input[type="hidden"].selecteddate) wordt niet gevuld doorgestuurd.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 17:47:34
Quote Anchor link
Ah, savedatum is voor de publieke weergave van de datum? Mogelijk heb je iets aan het bovenstaande antwoord, anders moet ik later even verder kijken - moet nu aan de kokerij :/.
 
Johnny Cash

Johnny Cash

01/05/2015 20:05:10
Quote Anchor link
Bedankt Thomas,

Ik heb even goed naar je code gekeken en bepaalde dingen toegepast op mijn programmatuur, maar dit is niet de oplossing helaas.

Wat ik denk (en begin het bijna zeker te weten) dat het volgende het probleem is:

1. ik heb een javascript.js bestand, hierin staat het stukje javascript voor de Datepicker met o.a. onderstaande code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
onSelect: function(dateText, inst) {
   $("input[name='eventdate']").val(dateText);
   $("#alternatedate").fadeIn();

   $.post( "/savedatum.php", { selecteddate:dateText } );
}


2. de Datepicker kalender staat in formulier.php, <div id="datepicker" class="deDatepicker"></div>

3. het script savedatum.php (zichtbaar in het .js bestand) is er alleen om de aangeklikte datum in een database te stopen. Dit zou je voor mijn probleem kunnen wegdenken.

4. op de pagina formulier.php wordt de aangeklikte datum getoond in zowel input field "eventdate" (format 2015-05-03) en in de readonly input met ID alternatedate (format Zondag, 3 mei 2015).

5. verder staat er op formulier.php een stukje ajax die elke wijziging van het formulier #processform doorstuurt naar een verwerkingsscript genaamd berekentotaal.php

6. naar dit berekentotaal.php script worden verschillende variabelen gestuurd m.b.v. onderstaande stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform ').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform select.selectcard, input[type="checkbox"].agree, #eventdate').change(function(){berekentotaal();});


7. alle formulier elementen staan tussen de form-tags waarbij select.selectcard en de checkbox op de formulier.php pagina zelf worden aangevinkt of geselecteerd. De #eventdate wordt echter gevuld vanuit javascript.js

8. de andere twee formulier elementen worden correct en goed doorgestuurd wanneer de waarde veranderd, maar dit gebeurd bij de #eventdate niet.


Ik weet dus eigenlijk wel zeker dat de veranderingen die het javascript.js bestand doorvoert naar het $eventdate element niet worden herkent als zijn CHANGE op de pagina formulier.php

Hier moet ik dus een oplossing voor zien te vinden.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2015 20:30:00
Quote Anchor link
Als je niets opmerkelijks in de code ziet wordt het tijd om te gaan debuggen.

Van welke browser maak je gebruik?

Heb je extensies geinstalleerd?

Maak je gebruik van de developer console (functietoets F12)?

Je moet informatie "tot je laten komen" (en je moet weten hoe) om hier uit te komen, want dit is anders een beetje blind schieten. De eerste stap is het gewoon maar dumpen van informatie naar je scherm / je console om het probleem op te sporen en te isoleren zodat je op zijn minst weet WAAR het fout gaat. Vervolgens kun je aan een oplossing gaan werken.

Ik snap alleen niet goed waarom je tussentijds een datum wegschrijft. Ook lijkt mij:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$("input[name='eventdate']").val(dateText);

nogal loos als dit veld al gekoppeld is aan je datepicker...

...Come to think of it, hoe luidt jouw declaratie van je datepicker object? Deze zie ik nergens staan :/. Het is voor mij verdomd moeilijk om een puzzel op te lossen waarvan ik niet alle stukjes heb. Waarom post je niet alle relevante delen?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/05/2015 13:12:03
Quote Anchor link
Ik heb het (sterke) vermoeden dat de datepicker gekoppeld is aan een div (inline).

Wat belangrijk is om te weten is dat als je via JS/JQuery de waarde van een input aanpast, de change event niet wordt getriggerd.

Maar eigenlijk wil je dat ook niet, want dat zou betekenen dat er nagenoeg gelijktijdig twee ajax request plaats vinden.

Net zoals Thomas vraag ik me af waarom je het in twee stappen wilt, maar als dat nodig is zou ik de berekentotaal() functie aanroepen in de callback van $.post('saveDatum.php').
 
Johnny Cash

Johnny Cash

02/05/2015 13:28:52
Quote Anchor link
De Datepicker is inderdaad gekoppeld aan de inline div. Dat staat ook in mijn stukje code die ik gisteren om 15:16 heb gepost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<div id="datepicker" class="deDatepicker"></div>';


Het klopt dat de change event niet wordt getriggerd, en dat is juist iets wat ik wel wil.
Is er niet een oplossing waarbij een change event wordt getriggerd wanneer de waarde via js/jquery wordt aangepast?

De twee request zijn wel nodig. De post naar savedatum.php is een stukje code wat enkel een aangeklikte datum op slaat. in savedatum.php staat enkel en alleen een mysql query.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/05/2015 13:57:26
Quote Anchor link
Johnny Cash op 02/05/2015 13:28:52:

Het klopt dat de change event niet wordt getriggerd, en dat is juist iets wat ik wel wil.
Is er niet een oplossing waarbij een change event wordt getriggerd wanneer de waarde via js/jquery wordt aangepast?

Ik kan even niet volgen waarom je dat wilt, het enige wat je in de eventListener hebt staan is een call naar berekentotaal().

Dus waarom niet dit:
Code (js)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
onSelect: function(dateText, inst) {
    $("input[name='eventdate']").val(dateText);
    $("#alternatedate").fadeIn();

    $.post( "/savedatum.php",
        {
selecteddate:dateText },
        function(){
            berekentotaal();
        }
    );
}
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2015 14:38:05
Quote Anchor link
Johnny Cash op 02/05/2015 13:28:52:
Het klopt dat de change event niet wordt getriggerd, en dat is juist iets wat ik wel wil.
Is er niet een oplossing waarbij een change event wordt getriggerd wanneer de waarde via js/jquery wordt aangepast?

Zelf de trekker overhalen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$("input[name='eventdate']").trigger('change');
 
Johnny Cash

Johnny Cash

02/05/2015 15:27:32
Quote Anchor link
Zelf de trigger overhalen leek mij ook de beste oplossing, maar dan moet ik deze samenvoegen met mijn andere stukje jquery omdat ik nog 2 andere variabelen meestuur voor de berekentotaal functie.

Wordt dan dit stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform ').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform select.selectcard, input[type="checkbox"].agree, input[name='eventdate']').change(function(){berekentotaal();});


Het volgende stukje code?:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
function berekentotaal()
{
  $.post("/berekentotaal.php", $('#processform ').serialize(), function(html)
  {
    $('#showtotaal').html(html);
  });
}
berekentotaal();
$('#processform select.selectcard, input[type="checkbox"].agree').change(function(){berekentotaal();});

$("input[name='eventdate']").trigger('change');


Dit werkt uiteraard nog niet, maar ik heb nu echt geen idee wat ik aan de nieuwe regel moet toevoegen zodat de variabele wordt meegestuurd in de berekentotaal() functie...

Dit function(){berekentotaal();} moet ik toch ook toevoegen in de nieuwe regel?



Toevoeging op 02/05/2015 19:58:28:

Ik maak een bedrag van 25 EUR over voor de geen die de verlossende oplossing heeft voor mijn laatste post...
Ik ben al 3 dagen zoet met dit stukje en kom er echt niet meer uit.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.