Toon posts:

[PHP] form/select alle waarden verwerken?

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

Verwijderd

Topicstarter
Op een pagina moeten allemaal vragen komen te staan in een bepaalde volgorde. Deze vragen staan in een database en zijn genummerd 1, 2, 3, 4, enz. In deze volgorde moeten ze ook getoond worden op een pagina. Simpel.

Nu moet ook de volgorde van deze vragen aangepast worden in een CMS. Ik ben er zo mee bezig:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
$rt = mysql_query("SELECT * FROM tbl_meer_vraag ORDER by mvanum ASC") or die ("error: ".mysql_error());
$total = mysql_num_rows($rt);
?>

<select name="vindex" size="<? echo $total; ?>" style="width:600px;">
<?
while ($row = mysql_fetch_array($rt)) {
  $mvaid = $row["mvaid"];
  $mvavrg = $row["mvavrg"];
  $mvanum = $row["mvanum"];
  $vl = strlen($mvavrg);
  if ($vl > 100) {
    $mvaant = substr($mvaant, 0, 100);
    $mvaant .= "...";
  }
  ?>
  <option value="<? echo $mvaid; ?>"><? echo $mvavrg; ?></option>
  <?
}
?>
</select>

Via javascript kan je de volgorde van de options veranderen:
code:
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
function moveup(dbox) {
    for (i = 0; i < (dbox.options.length); i++) {
        if (dbox.options[i].selected && dbox.options[i] != "" && dbox.options[i] != dbox.options[0]) {
            var tmpval = dbox.options[i].value;
            var tmpval2 = dbox.options[i].text;
            dbox.options[i].value = dbox.options[i - 1].value;
            dbox.options[i].text = dbox.options[i - 1].text
            dbox.options[i-1].value = tmpval;
            dbox.options[i-1].text = tmpval2;
            for(j=0; j < (dbox.length); j++) {
                dbox.options[j].selected=false;
            }
            dbox.options[i-1].selected=true;
        }
    }
dbox.focus();
}

function movedown(dbox) {
    for (i = 0; i < (dbox.options.length); i++) {
        if (dbox.options[i].selected && dbox.options[i] != "" && dbox.options[i+1] != dbox.options[dbox.options.length]) {
            var tmpval = dbox.options[i].value;
            var tmpval2 = dbox.options[i].text;
            dbox.options[i].value = dbox.options[i + 1].value;
            dbox.options[i].text = dbox.options[i + 1].text
            dbox.options[i+1].value = tmpval;
            dbox.options[i+1].text = tmpval2;
            for(j=0; j < (dbox.length); j++) {
                dbox.options[j].selected=false;
            }
            dbox.options[i+1].selected=true;
            break;
        }
    }
dbox.focus();   
}

Maar hoe krijg ik de nieuwe volgorde in de database? (ik weet hoe ik query's moet uitvoeren) Ik kan toch maar 1 waarde van die select opvragen, diegene die is geselecteerd, toch?

[ Voor 53% gewijzigd door Verwijderd op 25-10-2006 18:28 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 11-02 22:38

ripexx

bibs

Kijk voor de gein eens naar hoe ze het op de frontpage hebben gedaan met je custom trackers. Of hoe sharepoint het doet. Maak een lijst van vragen en geeft daarbij aan welke volgorde id deze vraag heeft. Dan kan je daar eenvoudige op sorteren.

Als je deze methode/select/lijst wil gebruiken, zal je bij een submit eerst alles moeten selecteren met Javascript, dit krijg je dan als een array terug in PHP. Maar dan moet deze wel multiple select zijn.

En als je het heel mooi wil doen dan maak je er een lijst van welke je met drag&drop kan verplaatsen waarna je bij elke verplaatsing de waarde opslaat in de database met behulp van een van de remotescripting technieken bijv. xmlhttp.

buit is binnen sukkel


Verwijderd

Topicstarter
ripexx schreef op woensdag 25 oktober 2006 @ 18:53:
Als je deze methode/select/lijst wil gebruiken, zal je bij een submit eerst alles moeten selecteren met Javascript, dit krijg je dan als een array terug in PHP. Maar dan moet deze wel multiple select zijn.
Heb je een voorbeeld? Ik heb dus geen idee hoe ik dat zou moeten bouwen. :(

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12-02 14:31

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op woensdag 25 oktober 2006 @ 21:23:
[...]


Heb je een voorbeeld? Ik heb dus geen idee hoe ik dat zou moeten bouwen. :(
Dan ga je eens zoeken met google? Het is hier namelijk geen helpdesk om even snel een stukje code te scoren :)
Ga gewoon eens wat zoeken, wat proberen etc. Er is echt een hoop te vinden. Als het dan niet lukt is dat niet erg en kan je hier prima een vraag stellen. Maar geef dan wel aan wat je nu zelf hebt geprobeerd en wat daar niet mee lukte :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Creepy schreef op woensdag 25 oktober 2006 @ 21:26:
[...]

Dan ga je eens zoeken met google? Het is hier namelijk geen helpdesk om even snel een stukje code te scoren :)
Ga gewoon eens wat zoeken, wat proberen etc. Er is echt een hoop te vinden. Als het dan niet lukt is dat niet erg en kan je hier prima een vraag stellen. Maar geef dan wel aan wat je nu zelf hebt geprobeerd en wat daar niet mee lukte :)
Ik word soms een beetje misselijk van dit soort (mod-)reacties. "Ga eerst eens zoeken met je luie teringreet voor je hier domme vragen komt stellen debiel!" is wat je wilt zeggen, maar de boodschap wordt overgebracht op een soort leraar-achtige manier, maar dan met tig smileys erbij om maar aardig over te komen.

Denk je echt dat ik niet eerst heb gezocht op google of op got zelf? Moet ik (zoals vele anderen dagelijks doen) eerst vermelden in mijn topic dat ik heb gezocht op google en got maar niks vond waar ik wat mee kon? Dan mag je schijnbaar de meest domme vragen stellen zonder dat iemand commentaar geeft.

Laat een topic voor wat het is of sluit het, maar laat dit soort kinderachtige berichten achterwege aub.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12-02 14:31

Creepy

Tactical Espionage Splatterer

Denk je echt dat ik niet eerst heb gezocht op google of op got zelf? Moet ik (zoals vele anderen dagelijks doen) eerst vermelden in mijn topic dat ik heb gezocht op google en got maar niks vond waar ik wat mee kon? Dan mag je schijnbaar de meest domme vragen stellen zonder dat iemand commentaar geeft.
Nope. Wel waarop je nu gezocht hebt en welke zaken je nu zelf hebt geprobeerd zoals je in o.a. het Beleids topic en de quickstart had kunnen lezen. Dit voorkomt dat je advies gaat krijgen over zaken die je zelf al had geprobeerd en laat ook meteen zien dat je zelf actief bezig bent geweest. Het is de inzet die telt, niet het nivo van de vraag.

Maar aangezien je dat niet wil doen krijg je je zin.

[ Voor 109% gewijzigd door Creepy op 27-10-2006 11:40 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10-02 15:42

Janoz

Moderator Devschuur®

!litemod

Tja, we verwachten hier nu eenmaal dat je ook zelf een beetje kunt programmeren. Je komt hier met een probleem en bent niet eens in staat om dit probleem op te delen in subprobleempjes die elk op zichzelf redelijk makkelijk op te lossen zijn. In het zinentje waarop je antworod bestaat uit drie regels.
Als je deze methode/select/lijst wil gebruiken, zal je bij een submit eerst alles moeten selecteren met Javascript
Dat lijkt me typisch iets wat inderdaad makkelijk te vinden moet zijn. Beetje googlen, een beetje door wat javascript script sites bladeren of gewoon in een javascript reference kijken.
dit krijg je dan als een array terug in PHP.
Dit lijkt me iets dat je zo terug kunt lezen in de php manual en zelfs gewoon met een simpel testje kunt proberen.
Maar dan moet deze wel multiple select zijn.
Oei een randvoorwaarde. Het werkt alleen als dat geldt. In de eerste de beste HTML reference is te lezen wat dit precies inhoud. Sterker nog, waarchijnlijk was je dit bij het eerste punt al tegen gekomen.

Goed, dit alles bekeken te hebben lijkt het me dat je genoeg aanknopings punten hebt om eens zelf op onderzoek uit te gaan. Maar nee hoor, jij bent degene die gelijk om voorbeelden loopt te zeuren om vervolgens ook weer te gaan zeuren wanneer je daar op gewezen wordt.

Hier op GoT verwachten we nu eenmaal dat je zelf ook wat onderneemt en inderdaad niet achterover op je luie reet blijft zitten wachten tot het probleem voor je opgelost wordt (om even jouw woorden te gebruiken). Let wel, het gaat hier specifiek niet om of de vraag wel of niet dom is. Domme vragen bestaan niet.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.