Thomas - 19/08/2016 10:49 (laatste wijziging 19/08/2016 10:50)
Moderator
Allereerst: JavaScript is (in dit geval) clientside, deze code is actief in de browser. PHP is serverside, deze code is actief op de webserver. Het resultaat hiervan wordt (meestal) als HTML-document (met JavaScript) naar de client (de browser) gestuurd. Indien je dus dingen aan het doen bent in JavaScript (clientside) dan zal deze informatie eerst teruggestuurd moeten worden naar de webserver voordat je hier iets in PHP mee kunt doen.
Dan naar je vraagstuk. Ik vind deze opzet apart. Je selecteert al een waarde in een dropdown, waarom zou je deze opnieuw ergens anders willen herhalen? :/.
Je kunt de inhoud van een element invullen/wijzigen met .html(inhoud).
Ik zal even kijken of ik precies krijg uitgelegd en getoond en wat ik nog moet , hopelijk dat jullie dit klein scriptje met mij kunnen afmaken, meer heb ik niet nodig dan is het klaar.
var bgnaam_val = $('option:selected', this).attr('attr-bgnaam'); // waarde van attr-bgrang ophalen
var bsgestort_val = $('option:selected', this).attr('attr-bsgestort'); // waarde van attr-bgrang ophalen
var bgstortingdatum_val = $('option:selected', this).attr('attr-reg_date'); // waarde van attr-bgrang ophalen
var bgstortingtotaal_val = $('option:selected', this).attr('attr-bgstortingtotaal'); // waarde van attr-bgrang ophalen
$('#player').val( bgnaam_val ); // waarde in de input #bgrang zetten
$('#bgstorting').val( bsgestort_val ); // waarde in de input #bgrang zetten*
$('#bgstortingdatum').val( bgstortingdatum_val ); // waarde in de input #bgrang zetten*bgstortingtotaal
$('#bgstortingtotaal').val( bgstortingtotaal_val ); // waarde in de input #bgrang zetten*bgstortingtotaal
});
});
</script>
</body>
</html>
Nu zal het denk ik wel van zelf spreken , maar tis de bedoeling dat ik uit de dropdown box de speler selecteer. (dat werkt)
Hij laat dan de naam eronder nogmaals zien, en de rest zoals in de foto.
Maar nu wil ik , wat voor jullie zeer makkelijk zal zijn, maar voor net dat stukje is wat ik nodig heb, is dat ik bij nieuwe storting een waarde invul.
De waarde die staat bij hoeveelheid gestort moet bij totale waarde gezet worden en de nieuwe hoeveelheid gestort
De volgende keer weer hetzelfde liedje.
Ik hoop dat jullie mij kunnen helpen want ik zit hier echt al enkele weken op te stoeien om het werkend te krijgen.
Ik denk dat alles een stuk makkelijker wordt als je dingen in logische componenten splitst.
Het makkelijkste lijkt mij het hebben van een stortingen tabel met de volgende opzet:
id,
datum
speler id (géén speler naam!)
bedrag
Elk record omvat dan één storting en voor elke storting maak je een nieuw record aan. Het totaalbedrag is afleidbaar, dit is immers de som van stortingen van één speler. Het voordeel van het aanmaken van meerdere records is ook dat je dan meteen een historie hebt in plaats van één record waarin alleen een eindresultaat staat opgeslagen waar je niet van weet hoe deze tot stand is gekomen.
Als eenmaal dit fundament is gelegd kun je gaan nadenken over interfaces/formulieren. Je zou bijvoorbeeld een collectie pagina's kunnen hebben die zich bekommeren om stortingen. Je zou bijvoorbeeld kunnen starten met een overzichtspagina van alle stortingen, aflopend gesorteerd met paginering en wat voor toeters en bellen je hier nog aan vast wilt programmeren.
Vervolgens zou je ook een of meer filters bij kunnen maken, waarbij je stortingen van een specifiek persoon bekijkt, of een specfieke periode. En tot slot zou je ook wat knoppen bij kunnen maken voor het toevoegen en wijzigen (maar mogelijk is dat geschiedenisvervalsing?) van stortingen.
Wat hierbij van groot belang is is dat elk onderdeel/elke actie eigenlijk één specifiek (of zo min mogelijk) voorgeschreven doel(en) heeft. Zodra je bewerkingen gaat combineren (zoals in bovenstaande code gebeurt) neem je dan al snel teveel hooi op je vork en tevens vertroebelt dit de werking van de webpagina. Functionaliteit moet helder en eenduidig zijn. Dit kun je vaak makkelijk bereiken door je ontwerp simpel te houden.
Ik snap jullie verhalen en uitleg wel, maar ik heb al van alles geprobeerd en het wilt gewoon echt niet om dat scriptje af te krijgen.
Ik ben ook bereid om alles te doen om het goed te leren, maar de tijd dringt mij op dit moment even om dat scriptje werkend te krijgen.
Eenmaal werkend heb ik tijd genoeg om jullie de hemden uit het lijf te vragen en alles van voor naar achter te bestuderen.
Ik ga ervoor op mijn knieën als het moet aub help me dit scriptje werkend te krijgen want als je kijkt naar eerdere gestelde 2 vragen ben ik er al lang mee bezig, maar mijn tijd dringt.
Thomas - 20/08/2016 19:58 (laatste wijziging 20/08/2016 19:58)
Moderator
Citaat:
Maar nu wil ik , wat voor jullie zeer makkelijk zal zijn, maar voor net dat stukje is wat ik nodig heb, is dat ik bij nieuwe storting een waarde invul.
De waarde die staat bij hoeveelheid gestort moet bij totale waarde gezet worden en de nieuwe hoeveelheid gestort
De volgende keer weer hetzelfde liedje.
Wanneer wil je dit dan bijwerken? Als je het formulier submit?
Geef eens een concreet voorbeeld met stappen en waarden?
Komt dit alles niet gewoon neer op een aangepaste UPDATE query?
Wat is trouwens het verschil tussen "Hoeveelheid gestort" en "Hoeveelheid Totaal gestort" want je houd alleen maar totalen bij in je database?
Ik snap weinig van dit formulier.
Daarnaast is deze werkwijze ook nogal gevaarlijk. Stel dat je meerdere beheerders hebt die dit formulier kunnen gebruiken. Stel nu dat deze allebei bij dezelfde gebruiker aan het storten zijn. Afhankelijk van hoe jouw UPDATE query in elkaar zit kan dit tot gevolg hebben dat deze beheerders elkanders wijzigingen aan het overschrijven zijn omdat je de database met (ver)oude(rde) informatie voert. Daarnaast heb je dan nog steeds geen historie van hoe een totaalbedrag totstand is gekomen. Als er dan iets onverwachts gebeurt is de verwarring compleet omdat je op geen enkele manier kunt nagaan hoe een bedrag aan zijn waarde komt.
Ik ben de enigste die dit zal bijhouden dus kan niet mis gaan ivm 2 gebruikers of zo.
Nou voorbeeld en ga van een db uit waar bij mijn naam alles nog op 0 staat.
1> Ik kies mijn naam uit de dropdown.
2> Dan laat hij dus mijn naam nog eens zien eronder.
3> Dan de regel eronder laat hij de laatst ingevulde storting zien die de keer ervoor was gedaan.
4> De regel eronder laat het totaal gestorte zien, dus in start positie zou dit 0 moeten zijn omdat de vorige keer zogenaamd 0 dus niets gestort was.
5> De regel weer eronder is wat nu weer gestort is.
Als de submit knop gedrukt word , moet dus de nieuwe ingevulde waarde bij stap 3 worden opgeslagen worden, maar tevens moet dus de oude waarde wat in stap 3 getoond werd opgeteld worden bij stap 4 en die moet ook opgeslagen worden.
Hm, "Hoeveelheid gestort" is dus het bedrag van de laatste storting, deze is afkomstig uit de tabelkolom bsgestort?
Het enige wat je volgens mij hoeft te doen is je UPDATE query kloppend maken?
En misschien je option attribute values van quotes voorzien.
En misschien redirecten nadat je gePOST hebt zodat je geen dubbelposts doet.
En misschien controleren of je invoer numeriek is.
En misschien je hele ontwerp herzien, maar dat terzijde .
Indien alles al werkte zoals het zou moeten (behalve die query dan) dan zou de query zoiets moeten worden:
Super bedankt!!!
Ik heb eindelijk het script werkend!! Super en ook nog 1 dag voor mijn deadline
Nu kan ik mij eens op het gemak de hele stof eens uitzoeken en kijken hoe allemaal moet.
Wist trouwens niet dat je in een sql statement een optel som kon zetten, weer wat geleerd
Indien dit vraagstuk is opgelost gelieve deze als zodanig te markeren. Dit doe je door:
- ofwel een reactie die het verlossende antwoord bevat te markeren als oplossing,
- ofwel het topic te markeren als opgelost indien je het vraagstuk zelf inmiddels hebt opgelost (en het is dan misschien ook handig om te vermelden hoe deze oplossing luidt zodat anderen hier ook iets aan hebben)
Dit alles kun je regelen via de icoontjes boven/onder de reactie/het topic.
Ik heb een foutje gevonden en ook geprobeerd dit opgelost te krijgen maar het lukt niet.
Als ik een player heb met bv de naam, zoals de mijne pascalbianca is er geen probleem met updaten.
Maar is er een player die een naam heeft zoals john snow worden zijn waarde niet geupdate, waarom nou hij laat dan alleen het begin stuk zien van de naam, in dit geval alleen john (zie de foto.: Link).
Zelf vermoed ik dat de fout zit in het stukje java/jquery, alleen ik heb geen idee hoe het opgelost moet worden.