• Hallo leden,


    Deze zaterdag avond heb ik weer eens na een lange periode aan mijn eigen project gewerkt. Waarbij ik op een nieuwe functie vast loop.
    Momenteel ben ik bezig met het ontwikkelen van een facturatie module binnen in mijn systeem.


    Dat ziet er momenteel als volgt uit:

    Hier over heb ik 3 vragen!


    Vraag 1:
    Ik zie soms in website's een "Meer velden" button die de zelfde tabel rij kopieert en plakt als het ware. Weet iemand hoe je zo iets noemt? Of waar ik z'n scriptje kan verkrijgen?


    Vraag 2:
    Hoe sla ik dit op in mijn database? Ik krijg te maken met meerdere aantal velden. Die ik in een proces moet verwerken?!?!? Helpppp..


    En mijn laatste vraag:
    Hoe converteer ik uiteindelijk de gehele ingevoerde actie tot een PDF bestand?


    Mijn grootste vraag is vraag 2 omdat daar ook het verwerk proces gaande is en dit ook goed opgeslagen moet worden? Ik heb zelf wat lopen klooien met JSON maar ik ben er niet echt bepaald op vooruit gekomen.


    Ik zou het echt heel erg waarderen als iemand mij hierbij kan helpen!
    Mocht iemand dit zelf willen programmeren voor mij? Hoor ik graag een normaal bedrag om dit werk uit te besteden.


    Alvast bedankt!!!


    :thumbup:

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Even wat opgezocht en dan heb je al vrij snel wat oplossingen. Ik weet natuurlijk niet in hoeverre jij thuis bent in PHP en Javascript, maar dit zijn wat manieren:


    Vraag 1. http://stackoverflow.com/quest…ments-dynamically-to-form
    Vraag 2. http://www.phptuts.nl/view/27/5/
    Vraag 3. http://stackoverflow.com/quest…reate-a-pdf-file-with-php

  • Formulier-elementen (in HTML) ondersteunen array-constructies door rechte haken toe te voegen aan een veldnaam:

    HTML
    <input type="text" name="regel[]" />


    Dit soort velden kun je knippen en plakken met JavaScript (waarschijnlijk bedoelde je dat of jQuery in plaats van JSON, ik zie niet helemaal hoe JSON hier bij past?).


    Als je vervolgens een regel opslaat en daarna weer wilt bewerken in eenzelfde soort dynamisch formulier zou je kunnen overwegen om een referentie (het volgnummer / het auto-increment veld) mee te geven aan dit veld:

    HTML
    <input type="text" name="regel[41]" value="eerder ingevoerde waarde" />

    Wel zul je iets moeten verzinnen om het onderscheid te maken tussen bestaande regels en nieuwe regels.


    Wat je ook nog zou kunnen doen (en wellicht stukken makkelijker is) is het volgende: deze regels zijn gekoppeld aan een overkoepelend iets (een factuur, een order, whatever). Wanneer je al deze data update doe je het volgende bij verwerking van het formulier:

    • je verwijdert alle bestaande items die gekoppeld zijn aan de factuur, en
    • je voegt ze opnieuw toe

    Dus je gebruikt deze als een koppeltabel tussen je orderregels en je orders, je hoeft dan geen moeilijke inspecties te doen maar kiepert gewoon alles weg en voegt alles (en mogelijk meer) opnieuw toe.


    Dit alles zou wel in één ondeelbare actie moeten. Dit kun je doen met database-transacties. Je moet er dan wel voor zorgen dat de ENGINE die je tabellen gebruiken deze bewerkingen ondersteunen.


    In zijn algemeenheid is het ook wel handig dat als je een grote administratief-achtige database hebt dat deze echt relationeel is opgezet. Tabellen hebben dan echt onderlinge verbanden en relaties middels foreign keys.


    Indien deze database(tabellen) niet de InnoDB engine hebben, zou ik daar eerst eens mee aan de slag gaan.


    De database vormt het fundament van je applicatie. Als deze niet goed is, hoef je ook niet veel van je applicatie te verwachten.


    EDIT: over PDF: dit lijkt mij echt een aparte zijstraat en die zou ik gewoon apart behandelen. Je zou bij het ontwerp van dit ding wel in je achterhoofd kunnen houden dat dit op ening moment ook in PDF-vorm gebruikt moet worden. Daarbij is het volgens mij ook (bij facturatie dan) belangrijk dat op het moment dat je hier een PDF van maakt en deze naar een klant stuurt dat de bijbehorende data niet meer gewijzigd kan/mag worden.

  • @P.Yntema,
    Dit is niet presies wat ik bedoelde met vraag 2.


    @Aaron,
    Ik ben benieuwd wat je hebt liggen!


    @FangorN,
    Thanks voor deze nuttige informatie, ik heb dit kunnen uit testen op een multiple select.


    Momenteel ben ik wachtende op Aaron. En er heeft zich een programmeur gemeld die dit voor een leuk tarief kan realiseren. Moet nog de details door nemen. Dus hopen dat het lukt!

  • Zo, na lang zoeken heb ik het gevonden!


    Standaard staat er 1 lijn, omdat je dit minimum nodig hebt....

    Code
    <form method="POST">
         <div id="dynamicInput">
         <p><input class="text medium"  type="text" value="" name="item1_name"/><input class="text prijs"  type="text" value="0,000" name="item1_price"/><input class="text aantal" type="text" value="" name="item1_qty"/></p>
    
    
         </div>
         <input type="button" class="button yellow" value="extra lijn" onClick="addInput('dynamicInput');">
    </form>
    <input type="submit" class="button" value="Toevoegen" /></form>



    De javascript code is:


    zoals je in de in de code kunt aflezen, zie je dat ik er maximaal 20 kan invoeren.
    die code kan je uiteraard nog aanpassen als je het zo niet wilt. ik doe maximaal 20 lijnen omdat mijn factuur dan vol staat. (omzetten naar pdf). veel succes met de code!


  • Dit is niet efficiënt. Zoals @FangorN al vermeldde, ondersteunen forms array structuur.
    Dit maakt het uitlezen van de data vele malen eenvoudiger.

  • Je kunt dit natuurlijk nog uitbreiden met meer toeters en bellen als je dat leuk vindt.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!