Autor |
Nachricht |
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Sa 15.09.2007 12:41
Titel Liste mit PHP sortieren / Anfangseintrag bestimmen? |
|
|
Hallo,
ich eine kleine Frage:
Ich habe eine Liste und möchte diese beim Seitenaufruf via Variable,
die ich in der url übergebe sortieren, bzw. "weiterschalten" und die
Startposition angeben. Ich habe leider überhaupt keine Ahnung, wo ich
anfangen soll ... evtl. mit einem Array und einer der sort-Funkionen?
Für Eure Hilfe wäre ich echt dankbar!
Also so in etwa:
Eigentliche Liste (Bsp):
- eins
- zwei
- drei
- vier
- fünf
Beim Seitenaufruf ?Aktuell=drei sollte das ganze dann so aussehen:
- drei
- vier
- fünf
- eins
- zwei
Ich möchte die Reihenfolge der Liste nicht verändern, nur eben den
Listeneintrag bestimmen, der am Anfang steht. Im obigen Beispiel
sollten dann natürlich die Listeneinträge vor "drei" unten angehängt
werden.
Gruß,
Patrick
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Sa 15.09.2007 14:02
Titel
|
|
|
nur maln versuch eines denkanstoßes
du hast dein ursprüngliches array mit deinen ganzen werden drin
[0] eins
[1] zwei
[2] drei
...
wenn die seite aufgerufen wird
nimmst du dir ein neues array und füllst das so
Code: | j = 0;
for(i = anzahlseitenaufrufe-1; i < ursprungsarray.length; i++ )
{
neuesarray[j] = ursprungsarray[i];
j++;
} |
wenn die seite zum 3. mal aufgerufen würde hättest du dann
neuesarray[0] = ursprungsarray[2]
neuesarray[1] = ursprungsarray[3]
neuesarray[2] = ursprungsarray[4]
dann musst du noch mal über die ersten werte in deinem ursprungsarray laufen, also die, die wir übersprungen haben und in das neue array einfügen...
war jetzt nur ne schnelle idee und geht wahrscheinlich auch eleganter...
Zuletzt bearbeitet von Skyw4lker am Sa 15.09.2007 14:03, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Sa 15.09.2007 16:09
Titel re |
|
|
Also hm ... ich schine zu blöd zu sein
Egal wie ich es anstelle, jedes Mal wird
ein Fehler ausgespuckt, dass ein "=" da
nicht hingehört ... zB bei "j = 0;"
Wenn Du etwas Zeit hast, könntest Du es
dann noch einmal wie einem 12-jährigen
erklären?
Oder hakt's schon beim Array?
Code: | $alt = array("eins", "zwei", "drei", "vier", "fuenf"); |
Eigentlich nicht, oder!? Habe den Rest natürlich
demenstsprechend benannt.
Zuletzt bearbeitet von bluespoon am Sa 15.09.2007 16:11, insgesamt 1-mal bearbeitet
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Sa 15.09.2007 21:38
Titel
|
|
|
Zitat: | j = 0;
for(i = anzahlseitenaufrufe-1; i < ursprungsarray.length; i++ )
{
neuesarray[j] = ursprungsarray[i];
j++;
} |
ist javascript. mach vor jede variable ein "$" und du hast gültigen php-code.
Setz dich mal mit Array-Zeigern in PHP auseinander.
1.) in session speichern
2.) Ab akueller Zeigerposition lesen
2.) Bei jedem Aufruf den array-Zeiger mit next() weiterschieben
Zuletzt bearbeitet von am Sa 15.09.2007 21:51, insgesamt 1-mal bearbeitet
|
|
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst Sa 15.09.2007 23:38
Titel RE |
|
|
Jepp ... Bin auch Deiner Meinung.
Hab' vo jede ein "$" gesetzt. Klappt
trotzdem net! Kam mir auch vor wie JS
... geht aber net!
Aber ich hab' immernoch das Problem ....
Vielleicht noch kurz nebenbei: Das ist ein
PRIVATES Ding! Hier sind ja immer mehr
Leute unterwegs, die sich "nur" Sachen
rauskopieren! Brauche das ergo net für
etwas kommerzielles ... nur für mich!!!
Zitat: | Setz dich mal mit Array-Zeigern in PHP auseinander. |
Kann ich ... Aber es funzt net!!!
Zuletzt bearbeitet von bluespoon am Sa 15.09.2007 23:55, insgesamt 4-mal bearbeitet
|
|
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst So 16.09.2007 18:30
Titel Fast gelöst ... jetzt mit JS |
|
|
So ... ich hab's jetzt fast gelöst.
Und zwar mit JS. Zuerst das Array,
dann der Code von Sky4lker und
zuletzt noch die manuelle Umwandlung,
damit ich das ganze ohne Kommas
ausgeben kann.
Die Variable "Aktuell" kann ich ja dynamisch
ändern.
Aber wie hänge ich nun die übersprungenen
Listeneinträge/Arrayeinträge unten wieder an?
Bis jetzt:
Code: | var Aktuell = 4;
var altesArray=new Array()
altesArray[0] = ["<li>eins</li>"]
altesArray[1] = ["<li>zwei</li>"]
altesArray[2] = ["<li>drei</li>"]
altesArray[3] = ["<li>vier</li>"]
altesArray[4] = ["<li>fuenf</li>"]
var neuesArray=new Array()
j = 0;
for(i = Aktuell-1; i < altesArray.length; i++ ) {
neuesArray[j] = altesArray[i];
j++;
}
var kommasEntfernen = neuesArray.join(" ");
document.write("<ul>" + kommasEntfernen + "</ul>"); |
|
|
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst So 16.09.2007 19:37
Titel
|
|
|
indem du unten dran nochmal ne schleife packst, die dir vom
index 0 bis zu Aktuell zählt? Wenn du's nicht hinkriegst dir vor
dem Durchlauf ein Array zu "backen" das dir 1:1 passt, dann
wirste du um nen zweiten Durchlauf nicht rum kommen.
|
|
|
|
|
bluespoon
Threadersteller
Dabei seit: 10.11.2006
Ort: Hannover
Alter: 41
Geschlecht:
|
Verfasst So 16.09.2007 22:54
Titel Problem gelöst |
|
|
Jou ... danke an alle!
Hab' das jetzt so gemacht:
Code: | var Aktuell = 4;
var altesArray=new Array()
altesArray[0] = ["<li>eins</li>"]
altesArray[1] = ["<li>zwei</li>"]
altesArray[2] = ["<li>drei</li>"]
altesArray[3] = ["<li>vier</li>"]
altesArray[4] = ["<li>fuenf</li>"]
var neuesArray=new Array()
j = 0;
for(i = Aktuell-1; i < altesArray.length; i++ ) {
neuesArray[j] = altesArray[i];
j++;
}
var kommasEntfernen = neuesArray.join(" ");
document.write("<ul>" + kommasEntfernen);
var nochEinArray=new Array()
j = 0;
for(i = 0; i < Aktuell-1; i++ ) {
nochEinArray[j] = altesArray[i];
j++;
}
var kommasNochmalEntfernen = nochEinArray.join(" ");
document.write(kommasNochmalEntfernen + "</ul>"); |
Und klappt alles
|
|
|
|
|
|
|
|
Ähnliche Themen |
[php] liste sortieren
liste mit javascript sortieren?
recordsets bestimmen
Pop up - Fenstergröße bestimmen
Fenstergröße bestimmen
Alter bestimmen mit php
|
|