Avatar billede KHHP Juniormester
02. september 2012 - 15:42 Der er 2 kommentarer og
1 løsning

Ændring af status på flere emner

Hej
Jeg er igang med at lave et opgavestyringssystem, så mine kunder kan se hvor langt jeg er nået med deres opgave, men er stødt ind i et lille problem.
Jeg kunne godt tænke mig at lave statusændring af opgaver på samme måde som man ændrer brugerniveau på flere brugere samtidig i wordpress, Det fungerer jo således at jeg i wordpress kan ændre bruger1 fra abonnent til redaktør, men samtidig kan jeg også ændre bruger2 fra administrator til skribent og bruger3 fra abonnent til administrator. Det fungerer via en dropdown-menu hvor jeg ændrer hvad jeg vil ændre og når jeg trykker på gem, så gemmer den ændringerne for de individuelle brugere.
Det kunne jeg også tænke mig at få lavet til mit opgavestyringssystem, men jeg ved bare ikke lige hvordan jeg skal strukturere det bedst muligt, således at jeg opnår samme resultat. Det er jo stærkt belastende for systemet at skulle sende mig til en side for at redigere status på opgave 1, så sende mig retur, og så sende mig til ændring af status på opgave 2 osv.
Det ville være både nemmere, og mindre belastende at kunne gemme alle ændringer på en gang, i stedet for at skulle sende mig kryds og tværs over 3-4 filer, rigtig mange gange for at ændre status på flere opgaver. Statusmuligheder ser således ud:
<select name="select" id="select">
  <option name="0" value="0">Ikke behandlet</option>
  <option name="1" value="1">Accepteret</option>
  <option name="2" value="2">Under udførsel</option>
  <option name="3" value="3">Gennemført</option>
  </select>

De ovenstående muligheder står ud for hver enkel opgave, så jeg nemt kan ændre dette, og alle opgaver er udskrevet med while-loop.
Hvordan laver jeg nemmest omtalte mulighed?
Jeg går ud fra at jeg skal bruge AJAX/Jquery for at løse opgaven.
Avatar billede moddi100 Seniormester
02. september 2012 - 16:02 #1
Jeg har ikke en løsning på dit problem, men vil bare lige pointere at det ikke er noget problem for din server at håndtere 4 forespørgsler en ad gangen. Det skulle den i hvert fald meget gerne kunne ellers indeholder dit system i hvert fald nogle helt fundamentale fejl.

Med hensyn til ide om at lave det hele på én gang, så kan du jo gemme det i et javascript array. Ud for hver opgave kan du jo så angive status:


var changes = new Array();
changes[changes.length] = [opgave_id, opgave_status];


Du laver altså blot et array til at holde dine ændringer og ligger dem ind så snart de er opdaterede. Sluttelig laver du så et ajax-kald og sender alt data med.

Nu henviser du selv til jquery og såfremt du allerede bruger jquery, kan du benytte følgende kode til det sidste kald:
$.ajax({
    type: "POST",
    url: location.href,
    data: changes,        //data is array
    dataType: "json",
    success : function () {
        // Something after success
    }
});
Avatar billede KHHP Juniormester
03. september 2012 - 15:46 #2
Det er ikke fordi at den server min side ligger på er langsom eller noget, men der er jo ingen grund til at belaste den mere end nødvendigt.
Det du har lagt til mig vil jeg kigge nærmere på og få testet det, men jeg skal stadig have konstrueret det PHP-script som skal lave ændringen for mig.
Normalt ville jeg gøre det således:

include '../inc/connect.php';
$data = mysql_query("SELECT * FROM opgaver" );
//Henter indhold fra formular
$opgave_id = mysql_real_escape_string($_POST['id']);
$status = mysql_real_escape_string($_POST['status']);
//Indsæt i db
if (isset($_POST['submit'])) {
      $tabeldata = "UPDATE content SET status = '$status' WHERE opgave_id = '$opgave_id'";
      $resultat = mysql_query($tabeldata);
      if($resultat) {
            echo 'GEMT';
      }
      else {
            echo 'IKKE GEMT';
      }
}
else {
    echo 'FEJL';
}

Her skal jeg jo have de forskellige informationer fra hver enkel opgave og så gemmer den ændringerne. Men hvad skal jeg ændre på mit php-script for at den kommer til at virke?
Avatar billede KHHP Juniormester
28. oktober 2012 - 16:30 #3
Godt lukker og slukker.
Droppede AJAX-metoden og lavede blot forms til hver opgave.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester