Een idee maar de uitvoering niet weten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donny Wie weet

Donny Wie weet

17/12/2012 15:38:19
Quote Anchor link
Hoi allemaal, ik heb een idee voor een nieuw script, maar heb geen idee hoe te beginnen. Kunnen jullie mij tips geven? Het is de bedoeling dat er een rooster gemaakt wordt. Je moet alle gebruikers in 1x kunnen bewerken. Het wordt een werk rooster die op week is gebaseert en niet op datum. In html heb ik een voorbeeld.

Groeten Donny


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
41
42
43
44
45
46
47
<html>
<body>
<table border="1">
    <tr>
        <td>Gebruiker</td>
        <td>Maandag</td>
        <td>Dinsdag</td>
        <td>Woensdag</td>
        <td>Donderdag</td>
        <td>Vrijdag</td>
        <td>Zaterdag</td>
        <td>Zondag</td>
    </tr>
    <tr>
        <td>Persoon 1</td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>        
    </tr>
    <tr>
        <td>Persoon 2</td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>  
    </tr>
    <tr>
        <td>Persoon 3</td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>
        <td><input type="text" size="4" /></td>  
    </tr>
</table>
<input type="submit" value="Opslaan" />
</body>
</html>
 
PHP hulp

PHP hulp

26/04/2024 13:55:23
 
No One

No One

17/12/2012 15:57:32
Quote Anchor link
in 1x?? ik zou zeggen iets in combinatie met jQuery, jQueryUI en ajax.

dan heb je een week voor je, en dan kan heb je bijvoorbeeld aan je linkerkant de lijst met namen van je medewerkers. Als je dan de dagen in shifts indeeld (bijv een shift van 8 tot 13, een shift van 12 tot 7 en 7 tot 9 ofzoiets) dan kun je die naam daar naar toe slepen dmv functionaliteit uit jQueryUI. bij loslaten kloon je het divje zodat de naam in de lijst aan de linkerkant blijft staan. met ajax verstuur je naar een scriptje de ID van de werknemer en wat gegevens over de shift.
 
Max -

Max -

17/12/2012 16:01:34
Quote Anchor link
Waarom maak je niet een optie om een gebruiker op te halen uit de database en uit te kiezen met een dropdown of iets dergelijks i.p.v. voor 3 personen verschillende input's te maken. Verder moet je een tabel maken met de 7 dagen + username/naam van de persoon & een ID. Als je dat hebt kan je gewoon een simpele insert into & select from query maken.
 
Donny Wie weet

Donny Wie weet

17/12/2012 16:06:03
Quote Anchor link
Henze, het kan ook met PHP, dat weet ik zeker.

Max, jouw idee kan ook, maar dan moet je elke medewerker apart aanklikken. Dat kan veel en veel sneller
 
No One

No One

17/12/2012 16:10:49
Quote Anchor link
@Donny, de backend is php. dmv javascript en ajax maak je het veel en veel sneller: klik, vasthouden, sleep, loslaten en klaar
 
Max -

Max -

17/12/2012 16:11:26
Quote Anchor link
Veel & Veel sneller? :p als je gewoon de jQuery UI Selectable gebruikt kan je gewoon slepen. Vervolgens maak je met PHP iets om voor het aantal geselecteerde personen een aantal keer de invulvelden te echo'en. Of; als de aangeklikte personen dezelfde gegevens hebben, gewoon 1 invulveld echo'en
Gewijzigd op 17/12/2012 16:11:39 door Max -
 
No One

No One

17/12/2012 16:12:56
Quote Anchor link
@Max idd dat is wat ik voorstelde :)
 
Donny Wie weet

Donny Wie weet

17/12/2012 16:17:08
Quote Anchor link
Ik heb geen kennis van AJAX java en die andere troep
 
Kris Peeters

Kris Peeters

17/12/2012 16:18:07
Quote Anchor link
Wat is precies het probleem? Welke aspecten?

Want ik zie wel een aantal dingen waar je op moet letten.

Gaat het om de afhandeling van de datums (berekenen welke week aan de orde is, berekenen van de datum van maandag, ...)?

Gaat het om hoe je de name van die <input>'t best kan regelen opdat je weet welke $_POST-variabele overeen komt met welke dag en welke persoon?

Gaat het om gebruikersgemak, client side truukjes om het vlotter te laten werken ...
-> Zeg, om te beginnen; is dit bedoeld enkel voor de Admin van de site? Kunnen verschillende gebruikers die aanpassingen doen?

EDIT: Een voorbeeldje:
Stel, je hebt een <table> met alle gegevens. Bij een bouble-click op een cel verandert de tekst in een <input>; bij elke aanpassing aan een cel stuurt javascript via Ajax automatisch de waarde door en wordt het, achter de rug van de gebruiker, aangepast in de DB. (eventueel, na de aanpassing wordt de <input> opnieuw een tekst)

Of nog iets anders?
Gewijzigd op 17/12/2012 16:23:30 door Kris Peeters
 
Donny Wie weet

Donny Wie weet

17/12/2012 16:25:47
Quote Anchor link
@Kris

Het is alleen voor de admin. Het gaat niet om snelheid van de verwerking van het script, maar iedere keer een naam aanklikken om de tijden te bewerken is nogal vervelend als je veel personeel hebt. Gebruikers kunnen (nog) geen aanpassingen doen.
 
Kris Peeters

Kris Peeters

17/12/2012 16:51:51
Quote Anchor link
Okay, bekijk eerst dit eens. Ik vertrek van jouw eerste post. Twee dingen:
- we steken de <table> in een <form>
- We geven elke <input> een name. De zelfde name, maar dan in een array.
Voeg dus aan elke <input> name="date[]" toe. Ongeacht persoon of dag

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
<?php
// test even met: print_r($_POST);
if($_SERVER['REQUEST_METHOD'] === 'POST') {
  foreach($_POST['date'] as $key=>$value) {
    $persoon = intval($key / 7);
    $dag_vd_week = $key % 7;
    if ($value !== '') {
      // hier heb je dus
      // - de dag van de week (0 = maandag -> 6 = zondag)
      // - en de persoon (0 = Persoon 1  -> 3 = Persoon 4) en kan je dus invullen wat je wil

      echo 'persoon: ' . $persoon . ' - dag: ' . $dag_vd_week . ' - waarde: ' . $value . '<br>';
    }
  }

  exit ;
}

?>

<form action="" method="post">
  <table border="1">
...
        <td>Persoon 1</td>
        <td><input type="text" name="date[]" size="4" /></td>
        <td><input type="text" name="date[]" size="4" /></td>
...
  </table>
  <input type="submit" value="Opslaan" />
</form>


Dit dus om te tonen dat je met jouw initieel idee een volledig rooster al kan invullen in 1 keer en perfect kunt zien welke variabele waarbij hoort.
Gewijzigd op 17/12/2012 16:58:44 door Kris Peeters
 
No One

No One

18/12/2012 12:17:15
Quote Anchor link
Donny van Grondelle op 17/12/2012 16:17:08:
Ik heb geen kennis van AJAX java en die andere troep

voor alles is een eerste keer. Het maakt alles zoveel vlotter en geeft ook een frisse uitstraling :)
 



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.