kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: jQuery not Selector

    geschrieben von things

    Hi!

    Ich bin icht versiert in jQuery, aber die Dokumentation für not() zeigt nirgends die not()-Anweisung in dem Selektor.

    Wäre es möglich, dass du statt
    $('div.project div.device-1 a:not([class])').mouseenter(function() {

    einfach nur
    $('div.project div.device-1 a').not([class]).mouseenter(function() {

    oder so schreiben musst?

    Schreib-Edit: Bei stackoverflow habe ich noch eine Antwort gefunden für deinen not-Selector. Das richtig verarbeiten kann ich aber nicht ^^"

    Prüft das [class] denn, ob in dem Attribut "class" etwas steht oder nur ob es gesetzt ist? Haben deine a-Tags vielleicht alle ein "class"-Attribut (wenn auch leer)?
    Wäre es eine Option so etwas zu schreiben:
    $('div.project div.device-1 a:not([class="selected"])').mouseenter(function() {


    Gut, viel Geschreibe ohne handfesten Hinweis, aber vielleicht kommt ja nun ein Denkanstoß o.o

    Grüße
    things
  • in: PDO: bestimmte Spalte mit bindColumn

    geschrieben von things

    Danke für deine Hilfe, czibere!
    Warum ich nun aber Heredoc verwenden soll, ist mir nicht klar. Damit ist mein Problem doch wieder da!

    Wie gesagt liegen in $from und $to die Spaltennamen (z. B. "coins") von den Währungen (von 4 möglichen Währungen), die eingewechselt werden. Ich weiß nicht, welche es sind und da die Kombinationen vielfältig sind (A zu B, A zu C, D zu A, B zu D, C zu B, ...), möchte ich einen Query nutzen. Um nicht in jeder Abfrage, wo ich schon $from und $to setze, das UPDATE-Statement zu schreiben, brauche ich diese Variablen.

    Und dann schreibe ich doch auch wieder
    $checksql = <<< EOT
    UPDATE t_person
      SET $from=$from-?, $to=$to+?
      WHERE id_pers=?
    EOT;

    Gut, vielleicht ein kleines bisschen besser lesbar...

    Inwieweit gerate ich denn mit den Konventionen in Konflikt?

    Danke für deine Mühe!

    Grüße
    things
  • in: PDO: bestimmte Spalte mit bindColumn

    geschrieben von things

    Hi czibere,
    ja, ich hatte bisher nicht viel Glück mit meinen Fragen...
    Inzwischen hatte ich das Problem sogar erkannt: Ich war der Meinung, dass ich so variabel die auszulesenden Spalten in den Query einspeisen kann. Das ist aus Sicherheitsgründen nicht möglich. bindColum ist dafür da, nachdem der Query ausgeführt wurde, die Rückgabewerte der Spalten in Variabeln zu speichern. Für mich also nicht zu verwenden :)
    Meine Spalten stehen nun in den Variabeln $from und $to, die Wechselgeld-Werte in $offer und $change und mein Query geht nach endlosen Zeilen dann so:
    //only way to keep that query variable...
    $checksql = 'UPDATE t_person SET ' . $from . ' = ' . $from . ' - ?, ' . $to . ' = ' . $to . ' + ? WHERE id_pers = ?';
    $prepstate = $connection->prepare($checksql);
    $prepstate->bindParam(1, $offer, PDO::PARAM_INT);
    $prepstate->bindParam(2, $change, PDO::PARAM_INT);
    $prepstate->bindParam(3, $id, PDO::PARAM_INT);
    $prepstate->execute();
    $connection = NULL;

    Nicht schön, aber besonders ^^" Mein Query wird nun mit den Variabeln zusammengestückelt.

    Und bindColumn findet dann doch noch Anwendung in der Aktualisierung der Session:
    $checksql = 'SELECT ' . $from . ', ' . $to . ' FROM t_person WHERE id_pers = ?';
    $prepstate = $connection->prepare($checksql);
    $prepstate->bindParam(1, $_SESSION['id'], PDO::PARAM_INT);
    $prepstate->execute();
    //bindColumn = set value of column to variable
    $prepstate->bindColumn($from, $_SESSION[$from]);
    $prepstate->bindColumn($to, $_SESSION[$to]);
    $prepstate->fetchObject();	//also need to set column to variable
    $connection = NULL;


    Mit der Verbindung ist ein wertvoller Hinweis - vielen Dank! Ich muss mal schauen, wie ich das formschön umsetze, da die Verbindungsdaten in einer include-Datei liegen...

    Vielen Dank nochmal für die Rückmeldung :)

    Grüße
    things
  • in: CSS: Unterschiedliche Schriftgrössen

    geschrieben von things

    Hallo!

    Welchen Browser benutzt du denn? Ich habe hier Firefox und da sehen die Schriftgrößen absolut nicht gleich aus. Mit dem Add-on Context Font sieht man auch gut, welche Schriftgröße gegeben ist.

    Als ich dem input die selbe Schriftgröße (18 px), wie #poll_title gegeben und mal beiden die selbe Schriftart zugewiesen habe, wurden beide gleich dargestellt (Firefox, aber 24 px).

    Als nur #poll_title und .input_container die selbe Schriftgröße hatten und das input keine eigene Definition, zeigte Firebug im "Berechnet"-Reiter eine Schriftgröße von 13.3333 px.
    Wahrscheinlich ist es durch das Inputfeld, das ja Rahmen und Padding hat, automatisch drin, dass die Schrift um x % verkleinert wird...

    Wann das 14-pt-input die selbe Größe wie das 18-pt-div hat, kann ich aber noch nicht nachvollziehen... :/
  • in: Über zwei Klassen das Hintergrundbild positionieren

    geschrieben von things

    Ja, ist immer gut, wenn man einen Schuldigen hat *lol*

    Ja, die Ansprache über die beiden Klassen geht natürlich, aber da schreib ich mich auch blöd bei xD Ich habe wirklich gehofft, dass ich hier noch eine gute Lösung finde, denn mit der Schreiberei für jede no-Klasse in Kombination mit jeder dirty-Klasse (die könnten auch mehr als 4 werden) sind wahnsinnig viel...

    Wenn wirklick keiner eine CSS-Lösung kennt, dann werd ich mich wohl mit JavaScript an einen inline-Style setzen, oder die ganzen CSS-Styles von PHP schreiben lassen o3o

    Oder ich habe viel Glück und Firefox und Opera unterstützen ab jetzt-gleich-sofort background-position-x/-y ...

    Ich wünsche euch ein frohes neues Jahr und nochmal vielen Dank für die Hilfe!

    Grüße
    things
  • in: Über zwei Klassen das Hintergrundbild positionieren

    geschrieben von things

    Moin!

    Du willst Livecode? Du kriegst Livecode! ^o^
    Einmal bitte hier klicken!
    Das geht aktuell leider nur im Firefox, weil ich mit dem draggable-HTML5-Zeug noch nicht so klar komme x_x Der Einfachheit halber habe ich den dirty-Klassen eine Hintergrundfarbe zugewiesen, damit man was sehen kann. Mit den unterschiedlichen Farben sollte ein anderer Teil des Bildes angezeigt werden.

    background-attachment ändert zwar die Position des Bildes, aber für die Veränderung per Klasse hilft es mir grade nicht weiter...

    Ich freue mich weithin über Hilfe jeder Art! :frown:

    Grüße
    things
  • in: Über zwei Klassen das Hintergrundbild positionieren

    geschrieben von things

    Hallo! ^^

    Uff, da bin ich ja froh, hab mich grad schon erschreckt! Ich träume ja fast schon HTML und CSS und dann so ein Fehler wäre ja blamabel *lol*

    Danke für den Hinweis! Die background-position-y habe ich inzwischen mal ausprobiert und habe leider bemerkt, dass diese Definition von Firefox und Opera nicht unterstützt wird. Damit ist sie so gut wie wertlos. ._.

    Der ganze Spaß ist natürlich auch mit JavaScript zu lösen, aber das möchte ich weitestgehend vermeiden...

    Gibt es noch eine Idee für eine schöne Lösung? :S

    Schonmal vielen Dank und guten Rutsch ;D

    Grüße
    things
  • in: Über zwei Klassen das Hintergrundbild positionieren

    geschrieben von things

    Hallo!

    Ich stehe gerade vor einem Problem: Ich möchte einem Div ein Hintergrundbild zuweisen und es mit Hilfe von 2 Klassen positionieren.

    Sinn und Zweck ist es, das Ausgangsbild auf 35 divs aufzuteilen und passend zu positionieren.

    Mein HTML sieht gekürzt so aus:
    <div id="wrapper_cleaning">
    	<div class="broom no1 dirty4" name="handle"></div>
    	<div class="broom no2 dirty4" name="handle"></div>
    	<div class="broom no3 dirty4" name="handle"></div>
    	<div class="broom no4 dirty4" name="handle"></div>
    	<div class="broom no5 dirty4" name="handle"></div>
    </div>

    Und das CSS dazu:
    .broom {
    	display:inline-block;
    	width:3em;
    	height:3em;
    	width:10px;
    	height:35px;
    	float:left;
    	background-image:url("../img/grooming_broom_demo.gif");
    }
    
    .no1 {	background-position:0 top; }
    .no2 {	background-position:-10px top; }
    .no3 {	background-position:-20px top; }
    .no4 {	background-position:-30px top; }
    .no5 {	background-position:-40px top; }


    In der Klasse "broom" definiere ich die Grundangaben und das Bild, dass den Besen darstellt. Die Klassen "no" zeigen die Nummer des Divs an und verschieben das Hintergrundbild (definiert über die Klasse "broom"), damit das Bild richtig zusammengesetzt wird.
    Mit JavaScript wird die Klasse "dirty4" bis zu "dirty1" bei entsprechenden Evens herunter gezählt und schließlich zu "clean" gewechselt. Soweit funktioniert es.

    Nun habe ich aber die Grafiken für die unterschiedlichen Verschmutzungszustände in ein Sprite gesetzt und kann jetzt nicht einfach die Bildadresse wechseln. Wenn z. B. die Klasse "clean" gesetzt ist, muss das Hintergrundbild also am unteren Rand ausgerichtet werden.
    Um das zu erreichen habe ich versucht, nur eine vertikale Hintergrundposition zu definieren, bin daran aber gescheidert...
    .broom.clean {
    	background-position: inherit bottom;
    }

    Dieser Code wird von Firefox nicht interpretiert und eine horizontale Ausrichtung kann ich in dieser Klasse nicht angeben, da sie auf alle Elemente mit jeder "no"-Klasse gesetzt wird.

    Gibt es etwa keinen Weg mit zwei Klassen den Hintergrund zu positionieren - also jeweils auf einer Achse?

    Ich bin für jede Art von Hilfe sehr dankbar, da ich keine Ahnung habe,wie ich das Projekt sonst realisieren soll.

    Grüße
    things
  • in: Objekte: Schmetterlingsschwarm fliegen lassen

    geschrieben von things

    Hallo zusammen!

    Ich habe vor langer Zeit mal mit JavaScript experimentiert und damit ein kleines Spiel gemacht: man muss fliegende Schmetterlinge anklicken. Diese Ändern von Zeit zu Zeit die Richtung und Geschwindigkeit und können auch den Bildschirm verlassen. Zu sehen ist das ganze hier.

    Nun habe ich etwas Kontakt mit objektorientierter Programmierung und würde das Projekt nun gerne objektorientiert umstellen. Ich dachte an Schmetterlingsobjekte, die einen Schwarm bilden und dieser Schwarm schließlich fliegt. Leider habe ich mich inzwischen total verirrt und bekomme die Animation des Schwarms einfach nicht hin. Das Array, in das ich aus Not die Schmetterlingsobjekte schiebe, wird anscheinend nicht verkürzt, wenn ein Schmetterling den Bildschirm verlässt und ich habe immer wieder einen Schmetterling irgendwo stehen, der dann nicht mehr animiert wird.

    Ich komme seit zwei Tagen auf keinen grünen Zweig mehr und ich würde mich sehr freuen, wenn mir jemand wieder auf den richtigen Weg helfen könnte. Meinen aktuellen Stand könnt ihr euch ebenfalls einmal ansehen.

    Wenn mir jemand helfen kann, meldet euch bitte und wenn ihr weitere Infos braucht, liefere ich die auch gerne nach. Zur besseren Ansicht ist hier nun die aktuelle JS-Datei:

    // JavaScript Document
    
    
    
    var creature1 = new Creature("creature1", "butterfly1", document.getElementsByTagName("body")[0], window.innerWidth);
    var creature2 = new Creature("creature2", "butterfly2", document.getElementsByTagName("body")[0], window.innerWidth);
    var creature3 = new Creature("creature1", "butterfly3", document.getElementsByTagName("body")[0], window.innerWidth);
    var creature4 = new Creature("creature2", "butterfly4", document.getElementsByTagName("body")[0], window.innerWidth);
    var creature5 = new Creature("creature2", "butterfly5", document.getElementsByTagName("body")[0], window.innerWidth);
    
    var swarm = new Array(creature1, creature2, creature3, creature4, creature5);
    function swarmMove() {
    	//creature-counting starts with 1
    	for(var i=0; i<=(swarm.length - 1); i++) {
    //		alert("swarm.length im for: " + swarm.length);
    		document.getElementById("ausgabe").innerHTML = swarm[0]['CSSid'] + "<br>" + swarm[1]['CSSid'] + "<br>" + swarm[2]['CSSid'] + "<br>" + swarm[3]['CSSid'] + "<br>" + swarm[4]['CSSid'];
    		
    		if(swarm.length == 0) {
    			clearInterval(movement);
    		}
    //		alert("21 - swarm bei " + i + " " + swarm[i].CSSid);
    		swarm[i].move(swarm[i]);	//give the name of variable
    		swarm.sort();
    	}
    	
    //	creature2.move(creature2);	//give the name of variable
    }
    
    //swarm-object
    
    //butterfly-object
    function Creature(varName, creatId, parentElem, areaWidth) {
    	this.varName = this.varName;
    	this.CSSclass = "butterfly";
    	this.dirX = Math.round(Math.random() * 10);
    	//although get negative values
    	if(this.dirX & 1) {
    		this.dirX = this.dirX * (-1);	//unequal number => go left
    	}
    	this.dirY = Math.round(Math.random() * 10);
    	//although get negative values
    	if(this.dirY & 1) {
    		this.dirY = this.dirY * (-1);	//unequal number => go down
    	}
    	this.CSSid = creatId;
    	this.imgPath = "img/games/";
    	this.posX = Math.round(((Math.random() * 90)/100) * areaWidth);	// relative and random arrangement of the swarm
    	this.posY = 0;
    	this.src = this.imgPath + "butterfly_left.gif";
    	this.width = 30;
    	
    	//at initialisation
    	var temp = document.getElementsByTagName("body")[0].appendChild(document.createElement("img"));
    	temp.setAttribute("class", this.CSSclass);
    	temp.setAttribute("id", this.CSSid);
    	temp.setAttribute("src", this.imgPath + "butterfly_left.gif");
    //	temp.setAttribute("onClick", "this.caught(this)");
    	temp.style.left = this.posX + "px";
    	temp.style.top = "auto";
    	temp.style.width = this.width + "px";
    	conformImg(this.dirX, 0, this, this.imgPath)
    	
    	//methods
    	this.caught = function() {};
    	this.move = function(elem) {elem.counter = 0;
    				elem.movement = setInterval(function() {
    	//				alert("67 - movement wird gemacht für " + elem.CSSid + "\nelem.Counter: " + elem.counter);
    					
    					elem.counter++;
    					if(document.getElementById(elem.CSSid) == null) { clearInterval(movement); return;}
    					
    					//get actual position
    					elem.posX = document.getElementById(elem.CSSid).offsetLeft;
    					elem.posY = document.getElementById(elem.CSSid).offsetTop;
    					
    					//change direction every 10th circle
    					if(elem.counter == 10) {
    						elem.counter = 0;
    						
    						//speed
    						moveX = Math.round((Math.random() * 10) + 4) * 2;
    						moveY = Math.round((Math.random() * 10) + 4) * 2;
    						
    						//define move-direction
    						elem.dirX = Math.round(Math.random() * 10);
    						elem.dirY = Math.round(Math.random() * 10);
    						//although get negative values
    						if(elem.dirX & 1) {
    							moveX = moveX * (-1);	//unequal number => go left
    						}
    						if(elem.dirY & 1) {
    							moveY = moveY * (-1);	//unequal number => go down
    						}
    						
    				//		alert("Aktuelle Position: " + elem.posX + "/" + elem.posY + "\nAktuelle Richtung: " + elem.dirX + "/" + elem.dirY + "");
    					
    					
    						elem.conformImg(moveX, moveY, elem, elem.imgPath);
    			//			alert("Bewegung um " + moveX + "/" + moveY + " - Bild ist " + elem.src);
    						
    						elem.posX = elem.posX + moveX;
    						elem.posY = elem.posY + moveY;
    					}
    					else {
    						elem.posX = elem.posX + elem.dirX;
    						elem.posY = elem.posY + elem.dirY;
    					}
    					
    			//		alert("Neue Position: " + elem.posX + "/" + elem.posY);
    					document.getElementById(elem.CSSid).style.left = (elem.posX + "px");
    					document.getElementById(elem.CSSid).style.top = (elem.posY + "px");
    					//set new pos
    			//		for(var i=0; i<10; i++) {
    	//			alert("windowheight: " + (window.innerHeight) + "\nposY: " + (elem.posY) + "\nwidth: " + elem.width);
    				
    		/*				if(elem.posX <= (window.innerWidth + elem.width)) {
    							alert("elem.posX <= (window.innerWidth + elem.width): " + elem.posX + " <= " + window.innerWidth + " + " + elem.width);
    						}
    						if(elem.posX > 0) {
    							alert("elem.posX > 0: " + elem.posX);
    						}
    						if(elem.posY <= (window.innerHeight - elem.width)) {
    							alert("elem.posY <= (window.innerHeight - elem.width): " + elem.posY + " <= " + window.innerHeight + " - " + elem.width);
    						}
    						if(elem.posY > 0) {
    							alert("elem.posY > 0: " + elem.posY);
    						}
    			*/	
    						//in body-area
    						if(elem.posX <= (window.innerWidth - elem.width) && elem.posX > -elem.width && 
    						   elem.posY <= (window.innerHeight + elem.width) && elem.posY > 0) {
    							document.getElementById(elem.CSSid).style.left = (elem.posX + "px");
    							document.getElementById(elem.CSSid).style.top = (elem.posY + "px");
    						}
    						else {
    	//						alert("136 - Kreatur " + elem.CSSid + " verlässt den Schirm!");
    							document.getElementById(elem.CSSid).parentNode.removeChild(document.getElementById(elem.CSSid));
    							clearInterval(elem.movement);
    					//		document.getElementById(elem.CSSid).style.visible = 'none';
    				//			alert("alte schwarmgröße: " + swarm.length);
    							swarm.splice(swarm.indexOf(elem),1);
    				//			alert("neu schwarmgröße: " + swarm.length);
    				//			document.getElementById("ausgabe").innerHTML = 'Es gibt noch ' + swarm.length + ' Schmetterlinge';*/
    						}
    				//	}*/
    					
    					
    				}, 100);
    	}
    				
    	//conform the image to direction
    	this.conformImg = function(moveX, moveY, elem, imgPath) {
    							if(moveX < 0 && moveY == 0) {
    								elem.src = imgPath + "butterfly_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if (moveX >= 0 && moveY == 0) {
    								elem.src = imgPath + "butterfly_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX > 0 && moveY > 0) {
    								elem.src = imgPath + "butterfly_up_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX < 0 && moveY < 0) {
    								elem.src = imgPath + "butterfly_down_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX > 0 && moveY < 0) {
    								elem.src = imgPath + "butterfly_down_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX < 0 && moveY > 0) {
    								elem.src = imgPath + "butterfly_up_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    						}
    }
    	
    	//conform the image to direction
    	function conformImg (moveX, moveY, elem, imgPath) {
    							if(moveX < 0 && moveY == 0) {
    								elem.src = imgPath + "butterfly_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if (moveX >= 0 && moveY == 0) {
    								elem.src = imgPath + "butterfly_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX > 0 && moveY > 0) {
    								elem.src = imgPath + "butterfly_up_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX < 0 && moveY < 0) {
    								elem.src = imgPath + "butterfly_down_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX > 0 && moveY < 0) {
    								elem.src = imgPath + "butterfly_down_right.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    							else if(moveX < 0 && moveY > 0) {
    								elem.src = imgPath + "butterfly_up_left.gif";
    								document.getElementById(elem.CSSid).src = elem.src;
    							}
    						}


    Vielen Dank für eure Hilfe!

    Grüße
    things
  • in: Link Farbe wird nicht geändert

    geschrieben von things

    Hi,

    es werden immer die Styles angewand, die am nahsten am Element stehen. Wenn du also direkt die Farbe in das HTML-Element schreibst, kannst du mit anderen CSS-Angaben da nichts mehr machen.
    Wenn du Styles im Header einer Seite stehen hast, überschreiben die die Styles einer externen CSS-Datei.

    Vielleicht ist das die Fehlerquelle..

    Grüße
    things
  • in: Onclick: display-block

    geschrieben von things

    Hi!

    Ich bin in JS nicht soo bewandert, aber müsstest du bei "div#menue.addClass('show');" nicht auch den jQuery-Syntax "$('div#menue'),addClass('show');" anwenden? Außerdem könntest du doch auch ".show()" und ".hide()" benutzen, damit setz jQuery eigenständig "display='hidden'". Es gibt auch Code für die Nutzung von ".toggle(showOrHide)", die ein- und ausblendet.

    Warum du den Funktionen einen Wert übergibst, den du nicht nutzt verstehe ich auch nicht so recht...

    Ich denke aber, der Fehler liegt in dem Syntax vom Zugriff auf die Elemente. Gegebenenfalls würd ich da wirklich mal mit document.getElementById ran gehen um diese Fehlerquelle auszuschließen :)

    Grüße
    things
  • in: Bedingung von SQL WHERE später bei fetch_object ergänzen

    geschrieben von things

    Hallo,

    ich weiß nicht genau, ob ich es nun richtig verstanden habe, aber du hast also mehrere Zeilen mit dem selben Wert in "key" und willst die ganzen Daten, die in der Tabelle vorhanden sind auslesen!?

    Wenn ich, mit meinem Halbwissen, dich so richtig verstanden habe, hatte ich das selbe Problem. Ich wollte mehrere Zeilen, die einer Person zugewiesen sind, auslesen. Dabei waren Ausbildungsbereiche (edu_id) unterschiedlich und die Level-Angabe (grade) optional. Ich habe es mit GROUP_CONCAT lösen können:

    SELECT t_person.id_pers,
    		GROUP_CONCAT(DISTINCT st_edupers.edu_id SEPARATOR '#%') as eduids, 
    		GROUP_CONCAT(st_edupers.grade SEPARATOR '#%') as edugrades, 
    		FROM t_person
    		LEFT JOIN st_edupers ON t_person.id_pers = st_edupers.pers_id
    		WHERE t_person.id_pers = ?


    Damit habe ich anhand der PersonenID Strings der Felder erhalten (z. B. edugrades = "Grundausbildung#%Zusatzausbildung").
    Dann konnte ich das mit explode zu einem Array machen und schließlich die beiden Arrays kombineren und so ein Array erstellen, dass die ID der Ausbildung als Key und den Level als Wert beinhaltet.

    Hilft dir das weiter oder liege ich total daneben? ^^"

    Grüße
    things
  • in: PDO: bestimmte Spalte mit bindColumn

    geschrieben von things

    Hallo zusammen!

    Ich werkel gerade an einer Art Geldwechsel-Seite. Für ein Spiel soll die virtuelle Währung A auch in die Währung B umgewandelt werden können, falls man gerade mehr A oder B braucht. Insgesamt gibt es vier Währungen.

    Formular, Validierung und Umrechnung habe ich soweit durch. Nun möchte ich nur noch die Daten in der Datenbank aktualisieren. Um nicht zig mal einen SQL-Befehl zu schreiben (Währung A kann ja in B, C und D getauscht werden, B in A, C und D, etc.) habe ich die Spalte und den neuen Wert der "Von-Währung" und der "Bis-Währung" in Variabeln gespeichert.

    Ich kriege das "bindColumns" leider nicht gehandhabt. Mit dem folgenden SQL versuche ich ein Ergebnis zu erzielen, damit ich den Fehler finde, denn es passiert in dieser Form anscheinend gar nichts. Ich bekomme keine Ausgabe und keine Fehlermeldung...

    $id = $_SESSION['id'];
    $bar = "coins";
    $connection = new PDO("mysql:host=xxx; dbname=xxx",
    						"xxx", "xxx",
    						array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    $checksql = "SELECT foo FROM t_person WHERE id_pers = ?";
    $prepstate = $connection->prepare($checksql);
    $prepstate->bindParam(1, $id, PDO::PARAM_INT);
    $prepstate->execute();
    $prepstate->bindColumn('foo', $bar);
    			
    $data = $prepstate->fetchObject();
    $connection = NULL;
    echo("<h3>Data:</h3>");
    print_r($data);


    Ich würde mich sehr freuen, wenn mir jemand sagen könnte, wo mein Fehler liegt. Irgendwie spuckt auch google nichts aus, das mich auf meinen Fehler bringen würde - trotz mehrstündiger Suche.

    Vielen Dank für eure Hilfe und jeden Hinweis. Ich mein, irgendwie muss das doch gehen, oder!?

    Grüße
    things
  • in: Zeilenumbruch in eine *.txt-Datei schreiben

    geschrieben von things

    Hallo,

    also ist es schlichtweg der absolute Basis-Editor, der damit nicht klar kommt!?

    Damit kann ich wohl arbeiten. Ich danke euch vielmals für die Hilfe und Unterstützung!

    Grüße
    things
  • in: Zeilenumbruch in eine *.txt-Datei schreiben

    geschrieben von things

    Hallo,

    ich danke euch vielmals, dass ihr mir helft!

    Ich verwende Windows Vista (gab nur das als ich einen neuen Rechner brauchte ^^") und öffne die Dateien mit dem Editor. Das erschien mir sinnvoll. Dort habe ich die Dateien auch mal mit und mal ohne Zeilenumbruch anzeigen lassen und da gab es keinen Unterschied.

    Ich bin eben sehr verwirrt, dass es mal ging und jetzt nicht mehr. Um der Zeilenumbruch-Hackerei zu entgehen schreibe ich doch extra binär "\n" als Zeilenumbruch. Das sollte dann doch überall gehen, oder!?

    Inzwischen habe ich mal die Dateien im Browser geöffnet (FF): Dort sind Zeilenumbrüche zu sehen. Außerdem ist in den Dateien das zu sehen:
    20.01.2013#%Große Taten vollbracht.

    In der Ausgabe und im Editor sind die Umlaute zu lesen. Das hat mit dem binär-Kram zu tun, oder?

    Die Zeilenumbrüche sind weiterhin nicht im Editor zu finden. Ausgabe im Browser und die Anzahl der Zeilen, die ich mit file() bekomme, sind auch richtig.
    Nur wenn ich mir die Datei im Editor (jetzt) ansehen möchte, ist es falsch... :/

    Von php.net:
    Sie sollten 't' Modus nutzen, wenn sie mit Textdateien arbeiten und sie nutzen \n um die Zeilenenden im Skript zu begrenzen, erwarten aber, dass ihre Dateien mit Anwendungen wie etwa Notepad lesbar sind. Ansonsten sollten sie 'b' nutzen. [...]
    Hinweis: Aus Portabilitätsgründen wird dringend empfohlen, dass sie immer das 'b' Flag nutzen, wenn sie Dateien mit fopen() öffnen.
    Hinweis: Außerdem wird aus Gründen der Portabilität dringend empfohlen, dass sie Code umschreiben, der den 't' Modus nutzt oder sich darauf verlässt, so dass die korrekten Zeilenendungen und der 'b' Modus stattdessen genutzt werden.

    Ich dachte eigentlich, dass ich mit "b" auf einem besseren Weg bin, als mit "t"...

    Was für ein Krusch...

    Grüße
    things
  • in: Zeilenumbruch in eine *.txt-Datei schreiben

    geschrieben von things

    Hi perlbotics,

    ich hätte es vielleicht deutlicher schreiben sollen statt nur "es werden keine Zeilenumbrüche mehr gemacht" im Fließtext zu schreiben ^^"
    Meine Dateien sehen nun so aus:
    22.11.2013#%Als 6. Mitglied angemeldet.24.11.2013#%Das nächste Level erreicht.30.11.2013#%Einen Orden verdient.


    Jede Zeile wird angehängt, aber das "\n" wird nicht gesetzt. Als ich probehalber in eine nicht vorhandene Datei "\n foo \n" geschrieben habe, wurde die Datei erstellt und 2 Zeilen gesetz:
    foo
    ~~~ Leerzeile ~~~

    Wenn ich den selben Text in die nun vorhandene Datei schreibe steht dort:
    foo foo
    ~~~ Leerzeile ~~~


    Warum du nun das "\n" ans Ende setzen möchtest habe ich nicht verstanden. Ich erstelle beim Anmelden die Datei und weiß, dass es immer eine Zeile davor gibt. Mit einem "\n" am Ende bekomme ich u. U. eine Zeile am Ende, die eher stört und für mich nach Fehler riecht - darum hab ichs nun immer am Anfang... :/

    Was du über flushing und locking und puffern sagst, verstehe ich leider auch nicht ^^" Tut mir leid, ich bin noch nicht so bewandert...

    Grüße
    things
  • in: Zeilenumbruch in eine *.txt-Datei schreiben

    geschrieben von things

    Hallo zusammen!

    Ich habe ein Problem und komme nicht weiter. Es funktionierte vor ein paar Tagen fehlerlos, aber nun habe ich es anscheinend kaputt bekommen:

    Ich möchte in einer Textdatei eine Art Historie erstellen. Dort soll dokumentiert werden, was der Benutzer wann erreicht hat. Jeder Eintrag soll eine eigene Zeile haben und aus Datum und Text bestehen. Ich lese dann zeilenweise aus, trenne an der Stelle "#%" und gebe es dann aus. Dafür wollte ich nun eine Funktion schreiben und dabei habe ich den Fehler gemerkt: es werden keine Zeilenumbrüche mehr gemacht und alles steht nur noch in einer einzelnen Zeile. Inzwischen läuft es bei den bereits getesteten Schreibzugriffen auch nicht mehr.
    Die Historien-Datei soll wie folgt aussehen:
    22.11.2013#%Als 6. Mitglied angemeldet.
    24.11.2013#%Das nächste Level erreicht.
    30.11.2013#%Einen Orden verdient.

    Dafür hatte ich z. B. diesen einfachen Code in einer PHP-Datei:
    $path = "data/" . $idfull . "_history.txt";
    	$history = fopen($path, "ab");
    	$content = "\n" . date("d.m.Y") . "#%Das nächste Level erreicht.";
    	fwrite($history, $content);
    	fclose($history);

    Die PHP-Datei liegt im Hauptordner und die Historien-Txt (z. B. "006_history.txt") im untergeordneten Order "data". Durch das "a"-Flag sollte der neue Inhalt angehängt werden und das "b" sollte den Zeilenumbruch mit "\n" systemübergreifend gewährleisten. Jetzt wird es nicht mehr übernommen.

    Dazu habe ich bei tutorials.de den Hinweis gefunden, dass es mit dem Modus des Programms zu tun hat.
    Ich habe in einem Modus meines Programms nicht in eine Datei geschrieben, sondern auf stdout. Den Modus hab ich seit Wochen benutzt und irgenwann hab ich angefangen, die Ausgaben mit "./test.exe > log.txt" umzuleiten. Und bei dem Umleiten wurde aus \n wieder \r\n und aus \r\n wurde \r\r\n.
    Habe den Modus gewechselt, direkt in eine Datei geschrieben und alles läuft wunderbar.
    Was genau das nun bedeutet und wie ich es bei mir verstellt haben könnte, weiß ich nicht...

    Es wäre toll, wenn ihr mir helfen könntet, meine Einträge wieder in einer neuen Zeile einzutragen, damit ich diesen Bereich wieder abhaken kann...

    Vielen lieben Dank schon einmal für alle Hinweise!

    Grüße
    things
  • in: LEFT JOIN: 2 Zeilen, 1 Spalte auslesen

    geschrieben von things

    Hallo zusammen!

    Ich probiere mich nach langer Zeit wieder an SQL und bearbeite ein altes Projekt. Jetzt habe ich ein Problem und weiß einfach nicht, wie ich es lösen kann:

    Ich habe eine Tabelle t_person, in der ich Name, E-Mail, etc. zu einer Person habe.
    id_pers | name_pers | email | ...
    5 | Thomas | t@om.as | ...

    Dann gibt es die Tabelle t_education, in der die fünf möglichen Ausbildungsbereiche vermerkt sind.
    id_edu | name_edu
    1 | Grundausbildung
    2 | Fortgeschrittene
    3 | Gruppentraining

    Eine Person kann alle Bereiche im Lauf der Zeit "bearbeiten" und ich brauche auch jeden Bereich, in den die Person sich mal eingeschrieben hat. Dafür habe ich eine Schlüsseltabelle st_edupers erstellt:
    id_edupers | pers_id | edu_id


    Soweit war ich mit meinem System zufrieden. Jedoch hat jede Person für jeden Ausbildungsbereich einen gewissen Prüfungslevel. Somit kann bei 5 Ausbildungsbereichen jede Person 5 verschiedene Prüfungslevel haben. Und wenn mehr Bereiche hinzukommen natürlich auch mehr Prüfungslevel. Eine Person könnte jedoch auch nur einen oder gar keinen Prüfungslevel haben.

    "grade" habe ich darum jetzt mal in die st_edupers-Tabelle gesetzt. Jede Zeile ist eine Person-Ausbildungsbereichs-Kombination - und genau soviele Prüfungslevel hat die Person. Erschien mir genial (für meine Verhältnisse...).
    Die Tabelle st_edupers ist nun:
    id_edupers | pers_id | edu_id | grade
    4 | 5 | 1 | 6
    5 | 5 | 3 | 9


    Jetzt weiß ich nur nicht, wie ich an die ganzen Zeilen rankomme.
    Ich arbeite grade an der Ausgabe des Personenprofils und bei der Ausgabe von Ausbildung und Prüfungslevel bekomme ich nun natürlich immer nur die erste Zeile. Wie kann ich alle Zeilen, die die Person enthalten aufgreifen und die verschiedenen Werte von edu_id und grade im Template nutzen?

    Mein aktuelles SQL (nur die relevanten Werte):
    SELECT t_person.id_pers, st_edupers.grade FROM t_person
    		LEFT JOIN st_edupers ON t_person.id_pers = st_edupers.pers_id
    		WHERE t_person.id_pers = 5

    Fürs Template:
    (isset($data->grade)) ? $grade = $data->grade : $grade = "noch keine Prüfung bestanden";


    Muss ich beim LEFT JOIN nun noch ein "AND-ON-SELECT"-Konstrukt oder so etwas machen? Wie mache ich das mit der Variablenzuweisung, wenn ich mehrere Werte aus der Spalte "grade" brauche?

    Ich würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen könnte. Vielleicht ist meine Tabellenverteilung auch Mist, aber ich weiß grad nichts eleganteres... :/

    Vielen Dank schon einmal!

    Grüße
    things

    EDIT:
    So, nun habe ich mir die ganze Nacht um die Ohren geschlagen und sicher ein paar graue Haare ergrübelt! Aber ich habe eine Lösung. Wenn ihr elegantere/performantere Wege kennt, bin ich immer noch ganz Ohr :)

    Die Funktion GROUP_CONCAT fasst die Ergebnisse aus verschiedenen Zeilen einer Spalte zu einem String zusammen. Ich benutze sie jetzt bei den Spalten edu_id und grade:
    SELECT t_person.id_pers,
    		GROUP_CONCAT(st_edupers.edu_id SEPARATOR '#%') as eduids,
    		 GROUP_CONCAT(st_edupers.grade SEPARATOR '#%') as edugrades, FROM t_person
    		LEFT JOIN st_edupers ON t_person.id_pers = st_edupers.pers_id
    		WHERE t_person.id_pers = 5


    Die Strings trenne ich mit explode. Dann habe ich ewig an den Arrays verbracht und combine() und array_merge_recursive() ausprobiert. Ich wollte eine Arraystruktur a la "edu_id ("grade" : "4", "foo" : "bar", ...)" - hat leider nicht geklappt. Mit 3 Werten konnte ich das nicht realisieren, darum mache ich nun ein neues Array und setzte dort die Werte ein:
    $eduids = explode("#%", $data->eduids);
    $edugrades = explode("#%", $data->edugrades);
    $edufoos = explode("#%", $data->edufoos);
    $education = array();
    if(count($eduids) > 1) {
    	foreach($eduids as $key => $value) {
    		$education[$value] = array("grade" => $edugrades[$key], "foo" => $edufoos[$key]);
    	};
    }
    else { //just one education
    	$education[$eduids[0]] = array("grade" => $edugrades[0], "foo" => $edufoos[0]);
    }


    Damit erhalte ich ein Array $education, in dem alle Informationen zu den bearbeiten Bereichen enthalten sind. Auf einen bestimmten Bereich greife ich durch den Index des Arrays zu (hier sind nur $education[1] und $education[3] vorhanden - Bereich 2 wurde nicht bearbeitet). Für die Ausgabe des Levels nutze ich dann $education[3]["grade"]. Wenn ich Inhalte nur ausgebe, wenn der Bereich bearbeitet wurde, reicht ein isset($education[5]).

    Bisher funktioniert es gut und ich bin ziemlich happy ^^ Ich hoffe, dass das hier auch einmal einem anderen Suchenden weiterhilft. :)
  • in: 3 Divs gleich hoch, Website-Links nun kaputt

    geschrieben von things

    Hallo,

    @mein-wunschname
    Okay, das JavaScript liest ja einfach nur die Höhe der beiden Elemente aus und setzt die höchste Höhe als festen Style fest. Das ist ja kein Hexenwerk :)

    @snhth
    Dieser Wert ist nur ein Wert, der von dem Inhalt her nicht erreicht wird. Ich könnte auch 100000 schreiben, aber irgendwie wird immer 32000 genutzt... Bei 1, 0 oder 100 wäre es zu wenig. Der Abstand wird ja zu der Größe des Divs addiert und dient dazu, das Hintergrundbild über die gesamte Höhe anzuzeigen. Durch ein overflow:hidden des umspannenden Divs werden die Divs mit dem margin/padding abgeschnitten und scheinen über die gesamte Höhe zu gehen - anscheinend sind alle Divs gleich hoch. Tada!

    @fatfreddy
    Wow, bist du gut! Ich hab gar nicht mehr daran gedacht, dass ich hier schon mit dem Layout gefragt habe ^^" Das ist meines - höchst eigens erdacht, gepixelt und gecodet. Nur, dass ich heute die Seiten von der Haustür auch in variabler Breite haben möchte und nicht mehr fix.
    Das mit dem Hintergrund funktioniert so leider nicht. Zumal die Steine des body etwas kleiner sein sollten, als die der Front, da sie ja räumlich weiter hinten liegen ;) Selbst wenn ich dem website-wrapper die Steine so verpasse, habe ich das Problem, dass links und rechts der Haustür die divs zu klein sind. Der Inhalt ist z. B. 800 px hoch, links sind es vielleicht 200px und rechts auf dieser Seite dann mal 0px. Und schon habe ich zwar einen weißen Inhaltsbereich und rechts und links Steine, aber diese Steine werden ja einfach nur abgeschnitten und haben keine Bruchkante. Wenn das ganze in Farbe daherkommt wird es noch störender sein.

    Ich verstehe einfach nicht, warum auch im IE8 die Ansicht nicht optimal ist und die Links nicht ordnungsgemäß funktionieren - der Browser muss die Seite doch nur runter scrollen! ><

    Nachtrag:

    Meine Lösung:
    Große divs, die jeweils ein HG-Bild beinhalten und auf 100% Höhe gesetzt sind. Mit z-index sind diese Container hinter den Inhalt gesetzt.

    <div id="content-wrapper">
    		<div id="col1" class="wall left relative" name="wall-left">
    			<div id="sub-nav">
    				<div id="signboard">
    					<strong>Übermenupunkt</strong>
    					<ul class="reset">
    						<li><a href="left.html">Menu</a></li>
    						<li><a href="left.html">Menupunkt mit vielen Inhalten</a></li>
    						<li><a href="left.html">Menu</a></li>
    					</ul>
    				</div>
    			</div>
                    </div>
    		<div id="col2" name="content">
    			<div>
    <a name="anker1"><h2>Ziel1</h2></a>
    <p>Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus.</p>
    			</div>
                    </div>
    		<div id="col3" class="wall right relative" name="wall-right">
    				<div>hier steht inhalt :D</div>
                     </div>
    	
    		<div class="stones left"></div><div class="stones right"></div>
    		<div id="container1"></div>
    		<div id="container2"></div>
    		<div id="container3"></div>
    		<div id="container4"></div>
    
        </div>


    #content-wrapper {
    	position:relative;
    	height:auto;
    	display:block;
    }
    
    .stones {
    	background-image:url("../img-new/stones.gif");
    	background-repeat:repeat;
    	background-position:left 6px;
    	width:19%;
    	position:absolute;
    	top:0;
    	height:100%;
    }
    .stones.left { left:0; }
    .stones.right { right:0; background-position:left 8px; }
    
    #container1,
    #container2,
    #container3,
    #container4 {
    	width:100%;
    	height:100%;
    	position:absolute;
    	top:0;
    }
    
    
    #container1 {
    	background-image:url("../img-new/wall-left-left.gif");
    	background-repeat:repeat-y;
    	background-position:left top;
    }
    
    #container2 {
    	background-image:url("../img-new/wall-left-right.gif");
    	background-repeat:repeat-y;
    	background-position:right top;
    	width:22.6%;
    	left:0;
    }
    
    #container3 {
    	background-image:url("../img-new/wall-right-right.gif");
    	background-repeat:repeat-y;
    	background-position:right -134px;
    }
    
    #container4 {
    	background-image:url("../img-new/wall-right-left.gif");
    	background-repeat:repeat-y;
    	background-position:left 2px;
    	width:22.6%;
    	right:0;
    }
    
    #col1, #col3 {
    	width:19%;
    	position:absolute;
    	top:0;
    	z-index:1;
    	padding-top:2em;
    }
    
    #col1 { padding-right:40px; left:0; }
    #col3 { padding-left:40px; right:0; }
    
    #col2 {
    	width:55%;
    	margin:0 auto;
    	position:relative;
    	z-index:1;
    }
    
    #col2 > div { padding:2em; }


    Ich dachte, dass es vielleicht irgendwann mal jemanden interessieren könnte... :S

    Grüße
    things
  • in: 3 Divs gleich hoch, Website-Links nun kaputt

    geschrieben von things

    Hi!

    Mir ist jetzt noch aufgefallen, dass IE7 doch komplett falsch dargestellt wird. Mit den Entwicklertools des IE sieht man, dass die Inhalte des header-Tags nicht als Inhalt des header-Elements umgesetzt werden - aber nur hier auf dem Lima-City-Server. Bei meinem xampp sieht es richtig aus und wird auch richtig umgesetzt.

    Wie das möglich ist, versteht ich nicht :/

    @mein-wunschname
    Ich würde gerne ohne JS arbeiten, was nicht ganz machbar ist, aber ich mag einfach nicht glauben, dass ich dafür JS brauche oO" Ich werde mir das Script mal ansehen. Vielen Dank dafür ^^

    Wenn mir jemand noch einen Tipp geben kann, bin ich sehr dankbar! >.<

    Grüße
    things
  • in: 3 Divs gleich hoch, Website-Links nun kaputt

    geschrieben von things

    Hallo zusammen!

    Ich habe nun ein Problem, von dem ich nie gedacht hätte, dass es auftaucht: Durch den "Hack" für 3 gleichgroße Divs sind die Links zu einem Abschnitt auf der selben Seite "kaputt".

    Für eine Website, die auch im IE7 funktionieren muss, habe ich ein Hausfront-Layout gemacht, Oben links findet ihr einige Links für tieferliegende Abschnitte auf der Seite
    <a href="#anker1">Ziel1</a>
    [...]
    <a name="anker1">Ziel1 erreicht</a>


    Der Inhalsbereich ist quasi die Tür des Hauses. Rechts und links soll die Mauer zu sehen sein. Auf die selbe Höhe habe ich die Ebenen schon gebracht, und zwar mit:
    margin-bottom:-32000px;
    padding-bottom:32000px;


    Einzeln laufen die beiden Codeschnipsel einwandfrei. Jedoch springt der Browser (FF, O, C, IE) beim Klick auf die Links unschön auf das Ziel. Das Ziel wird zwar erreicht, jedoch wandert der Inhalt, der über dem Ziel liegt, unter den Header und ist somit nicht mehr lesbar. Unter Umständen entsteht am Seitenende ungewollter Weißraum. Der Inhalt des #content wird nach oben geschoben, aber das Layout läuft nicht mit, sodass die Seite erst ohne den Link geladen werden muss, damit man sie wieder gut nutzen kann.

    Ich bin für jeden Hinweis dankbar! Ich weiß nicht, wie ich das Problem lösen soll...

    Grüße
    things

    PS: Alle drei Spalten haben eine relative Breite; darum sind auch 3 Hintergrundbilder (Hausrand, Steine, Balken) notwendig, um den Gesamteindruck des Layouts zu erhalten. Da es bis zum IE7 runter funktionieren soll, kann ich hier leider keine mehrfachen Hintergrundbilder definieren, aber ich denke, mit der jetzigen Lösung geht es die nächsten Monate auch...
    Ich würde mich wirklich freuen, wenn mir jemand bei diesen doofen Problem helfen könnte.
  • in: Template-System gesucht

    geschrieben von things

    Hui, so viele Antworten - sehr schön und bereits jetzt vielen Dank für die Hilfe!

    @Simon D.
    Danke, das mit den Stylesheets ist wohl wirklich keine schlechte Idee. Dann kann ich im selben Atemzug mit PHP das/die DIV ausgeben und gut ist... Ich habe nur immer etwas Sorge, dass ich die Bandbreite zu sehr beanspruche...

    Wenn ich doch zu einem CMS greife, würde ich ein verbreiteteres nehmen. Ich arbeite im Bereich Webprogrammierung und würde mich dann eher mit Joomla oder Wordpress "fortbilden".

    @fatfreddy
    *lol* Ja, gut. Insofern hast du natürlich Recht. Aber eine 5-Seiten-Website macht man eher ohne Template als eine 50-Seiten-Website - auch, wenn alle Seiten gleich aussehen, oder? ;)
    Nein, es wäre Webmaster. Ich beschäftige mich gerade spaßeshalber mit dem Projekt einer DoReMi-Hexenschule, das ich vor 6 Jahren angedacht habe. Das meiste müsste eh per PHP laufen, da das Pensum sonst nicht zu schaffen ist. Das CMS wäre letztendlich wohl eher die Erleichterung von der Einpflege neuer Inhalte...
    Contentlieferanten wäre eher die Schüler/Benutzer - und die sollen nicht ins Backend! XD

    Die Projektinfos sind deswegen so schwammig, weil das Projekt seit Jahren in meinem Kopf reift und ich schon 3 Anläufe hatte. Es wird wahrscheinlich nichts werden, weil allein die Arbeitszeit für die Grafiken bestimmt 1/2 Jahr in Anspruch nimmt.

    PHP kann ich (irgendwie). Auch Smarty hab ich schon gelesen, aber es wird doch oft gesagt, dass der Schreibaufwand der selbe wie bei PHP ist und es sich eigentlich nicht lohnt, die Smarty-Sprache zu lernen...


    Gestern habe ich dann doch mal xampp installiert und mir ein Template-Provisorium gebaut:
    [...]
            <div id="middlecontent">
    		<div id="content">
    			<?php
    			if(isset($_GET["id"])) {
    				switch($_GET["id"]) {
    					case("anmeldung"):
    						include("anmeldung.html");
    						break;
    					case("einleitung"):
    						include("einleitung.html");
    						break;
    					case("faq"):
    						include("faq.html");
    						break;
    					case("neuigkeiten"):
    						include("neuigkeiten.html");
    						break;
    					case("profil"):
    						include("profil.html");
    						break;
    					case("start"):
    						include("start.html");
    						break;
    					case("suche"):
    						include("suche.html");
    						break;
    					default:
    						include("start.html");
    						break;
    				}
    			}
    			else { include("start.html"); }
    			?>			
    		</div>
            </div>
        </div>
    [...]

    Zum Wieder-Lust-Kriegen reicht das und ich kann etwas in dem Layout rumklicken. Die finale Lösung kann das nicht sein, aber um erstmal IRGENDetwas zu produzieren reicht es. Ich werde mich aber noch mit dem Erstellen der Zufalls-DIV beschäftigen müssen...

    Grüße
    things
  • in: Template-System gesucht

    geschrieben von things

    Hallo Simon,

    danke für deine Antwort. Ich wollte ursprünglich kein CMS nutzen, bis es nicht unbedingt notwendig ist, aber ich dachte auch schon daran, dass ein CMS die einfachste Lösung wäre.

    Mit TYPO3 habe ich schon einmal gearbeitet, aber das wäre wohl doch zuviel des Guten.........

    Wie meinst du das mit unterschiedlichen Templates? Die Änderungen wären nur ein zusätzliches div mit Link und Bild oder Text o. ä. Muss ich dafür ein komplettes Template nutzen? Und wie gesagt würde ich es gerne zufällig machen. Also, dass z. B. auf der Seite "Anmeldung" immer ein Schild an der Tür hängt und auf jeder beliebigen Seite kann - per Zufall - eine Vase im Fenster stehen. Ich will eigentlich gar nicht wissen, was der Benutzer genau immer auf dem Schirm hat...

    Grüße
    things
  • in: Template-System gesucht

    geschrieben von things

    Hallo zusammen!

    Ich möchte demnächst ein neues Projekt angehen. Da die Website recht viele Seiten umfassen wird (ohne zu zählen würde ich 50 als Minimum ansetzen) würde ich gerne ein Template-System benutzen. Wenn ich weitere Webmaster ins Projekt holen würde, wäre unter Umständen auch ein CMS notwending...

    Ich kann HTML, CSS und JavaScript - das hilft mir hier ja nichts. PHP und MySQL habe ich bereits gestreift - ist aber leider schon 2 Jahre her. Darum würde ich das Projekt gerne nutzen um diese Kenntnisse aufzufrischen und auszubauen.

    Die Website soll optisch einer Hausfront ähneln. Auf manchen Seiten fix, auf anderen per Zufall, sollen kleine Gimmiks im Layout erscheinen (ein Vogel auf der Fensterbank, ein Loch im Stein, eine Blumenvase im Fenster, ...). Wie ich das umsetzen soll, weiß ich noch nicht.

    Außerdem - und das ist ja der Anfang des Ganzen - suche ich eben noch ein Template-System. Ohne das macht das Umsetzen ja keinen Spaß x___x

    Es wäre toll, wenn ihr mir hier eure Favoriten und Vorschläge nennen könntet. Ich komme trotz Google und Forensuche nicht wirklich weiter... *hmpf*

    Vielen lieben Dank!

    Grüße
    things
  • in: Video in HTML5, mit Flash und noch für die anderen...

    geschrieben von things

    Hallo zusammen!

    Ich habe versucht, mich in ein anderes Thema einzuklinken, aber das ist nun leider im Spam-Treibsand versunken... Darum versuche ich es nun noch einmal hier...

    Ich bin auch gerade am Video-einbinden. YouTube habe ich nun verworfen, weil meine Website auch auf mobilen Geräten funktionieren muss. Da ich grad alles für PC, Tablet und Smartphone optimiere und die Videos 25 % meiner Website einnehmen, kann ich auf die nicht verzichten.

    Ich habe schon viel gesucht und irgendwie komme ich nicht mehr weiter. Ich habe zwar nur ein 2-jähriges Android-Smartphone, aber da geht der Video-Code schon nicht. Ich sehe nur Leere.
    Meinen aktuellen Video-Einbindungs-Stand findet ihr auf http://things.lima-city.de/video.html.

    Ich wäre sehr froh, wenn mir jemand einen funktionstüchtigen Fallback geben könnte. Ich seh den Wald anscheinend vor lauter Bäumen nicht mehr... .__.

    Herzlichen Dank!

    things

    PS: Zur schnellen Ansicht, hier der stilisierte Code:
    <video width="100%" height="auto" controls>
    	<source src="URL/animation-3d_film.mp4" type="video/mp4" />
    	<source src="URL/animation-3d_film.ogv" type="video/ogg" />
    	<source src="URL/animation-3d_film.webm" type="video/webm" />
    	<object type="application/x-shockwave-flash" data="URL/animation-3d_film.swf" width="100%" height="auto" standby="Das Video wird geladen - einen Moment bitte.">
    		<param name="autostart" value="false" />
    		<param name="autoplay" value="false" />
    		<param name="allowFullScreen" value="true" />
    		<param name="controller" value="true" />
    		<param name="movie" value="URL/animation-3d_film.SWF" />
    		<param name="flashvars" value="controlbar=over&amp;file=URL/animation-3d_film.MP4" />
    		<embed width="300" height="250" src="URL/animation-3d_film.swf" type="application/x-shockwave-flash" autostart="false" autoplay="false" loop="false" controls="true" controller="true" />
    	</object>
    	<p>Leider untersützt ihr Browser keine aktuellen Videoformate...</p>
    </video>
  • in: Html Video einfügen ?

    geschrieben von things

    Okay! Spam-Forum, aber noch recht frisch - darum niste ich mich nun mal hier ein ^^"

    Ich bin auch grad am Video-einbinden. YouTube habe ich nun verworfen, weil meine Website auch auf mobilen Geräten funktionieren muss. Da ich grad alles für PC, Tablet und Smartphone optimiere und die Videos 25 % meiner Website einnehmen, kann ich auf die nicht verzichten.

    Ich habe schon viel gesucht und irgendwie komme ich nicht mehr weiter. Ich habe zwar nur ein 2-jähriges Android-Smartphone, aber da geht der Video-Code schon nicht. Ich sehe nur eine leere Seite.
    Meinen aktuellen Video-Einbindungs-Stand findet ihr auf http://things.lima-city.de/video.html

    Ich wäre sehr froh, wenn ihr mir auf die Sprünge helfen könntet, was ich nun tun muss, damit das Mistzeug überall läuft.

    Danke schon einmal! :)

    Grüße
    things

    PS:
    Die Dateien sind in allen Formaten vorhanden und "URL" ist nur ein Platzhalter um den Code zu kürzen. :)
    <video width="100%" height="auto" controls>
    	<source src="URL/animation-3d_film.mp4" type="video/mp4" />
    	<source src="URL/animation-3d_film.ogv" type="video/ogg" />
    	<source src="URL/animation-3d_film.webm" type="video/webm" />
    	<object type="application/x-shockwave-flash" data="URL/animation-3d_film.swf" width="100%" height="auto" standby="Das Video wird geladen - einen Moment bitte.">
    		<param name="autostart" value="false" />
    		<param name="autoplay" value="false" />
    		<param name="allowFullScreen" value="true" />
    		<param name="controller" value="true" />
    		<param name="movie" value="URL/animation-3d_film.SWF" />
    		<param name="flashvars" value="controlbar=over&amp;file=URL/animation-3d_film.MP4" />
    		<embed width="300" height="250" src="URL/animation-3d_film.swf" type="application/x-shockwave-flash" autostart="false" autoplay="false" loop="false" controls="true" controller="true" />
    	</object>
    	<p>Leider untersützt ihr Browser keine aktuellen Videoformate...</p>
    </video>
  • in: Browserweichen: FF<3, S<4

    geschrieben von things

    Halllo fabo!

    War ja klar, dass du antwortest - danke dafür! *s*

    Das ist ein kommerzielles Projekt. Will heißen: Ich sitze hier grad bei der Arbeit.

    Der Programmierer verbietet mir PHP *seuftz* und ich würde gerne ohne JS auskommen, wegen dem alten Problem, dass man es ausstellen kann...

    Grüße
    things
  • in: Browserweichen: FF<3, S<4

    geschrieben von things

    Hallo zusammen!

    Ich stehe gerade vor einem Problem: Google Maps API v3.
    Google Maps ist auf der Website eingebunden - in der neusten Version - und unterstützt veraltete Browser nicht. Jedoch möchte ich zumindest einen Info-Text einblenden, der den Benutzer darüber informiert, dass es an seinem Browser liegt und an Google und nicht an uns ;)

    Die Maps sind ein zentrales Element und darum habe ich es für den IE6 nun so gemacht, dass ich die Karte ausblende (display: none) und dem umfassenden Div ein Hintergrundbild zuweise, in dem die Info steht, dass der Browser zu alt ist.

    Leider finde ich nun keine Browserweiche für Firefox2 und Safari3...

    Kann mir jemand helfen und sagen, wie man eben diese Browser ansprechen kann?

    Danke euch vielmals!

    Grüße
    things
  • in: Regex 8 beliebige Zeichen

    geschrieben von things

    Hi!

    Vielleicht versuchst du mal, Anfang und Ende mit zu definieren...

    /^(.{8,})$/smi


    Grüße
    things
  • in: Multiple Choices Fehler

    geschrieben von things

    Letztendlich ist es doch nur eine Anzeige, die in der Adressleiste zu sehen ist. Kann man nicht dem Browser statt dem richtigen Pfad eine Alternative aufschwatzen? Die entspricht dann eben dem realen Pfad ohne die Dateiendung...

    Ansonsten denk doch einfach darüber nach, die Ordner/Dateien umzubenennen... o.o

    Grüße
    things
  • in: Hintergrundbild mit Verlinkungen

    geschrieben von things

    Hallo!

    Ich rate dir mal, wenn du Firefox benutzt, das Addon "Firebug" zu installieren - ich weiß nicht, was ich ohne es ma chen würde! :)

    Zu deiner Frage:

    Hier bei Lima-City sieht der Code für den, für dich interessanten Bereich, so aus:
    HTML:
    <div class="wrapper">
            	
            <h1><a href="/">kostenloser Webspace: lima-city</a></h1>            
                  
             <ul id="nav">
                        [...]
             </ul>
    	<form method="post" action="/search" id="search">
                        [...]
            </form>
                
    </div>


    CSS:
    #branding .wrapper {
    overflow: visible;
    }
    .wrapper {
        height: 1%;
        margin: 0 auto;
        max-width: 1070px;
        padding: 10px;
        position: relative;
    }
    h1 {
        line-height: 30px;
    }
    #branding h1 a {
        background: url("../images/layout/top/logo/branding_stamp.png") no-repeat scroll 0 0 transparent;
        display: block;
        height: 105px;
        margin-top: 5px;
        padding: 7px;
        text-indent: -9999px;
        width: 400px;
    }
    a {
        color: #444444;
        text-decoration: underline;
    }


    Wichtig für dich ist die Formatierung von dem a in einem h1-Tag in der Ebene "branding". Im HTML kannst du sehen, dass das A einen Linktext hat. Durch die Eigenschaft "text-indent" wird die Schrift allerdings weit verschoben, sodass es außerhalb der Ebene liegt. Durch das "overflow:hidden" für die wrapper-Ebene sieht man den Text nicht - toll gelöst muss ich sagen! Darauf bin ich noch nicht gekommen! :)
    So, weiter im Text: der Link mit dem Ziel "/" - also der Startseite - hat ein Hintergrundbild. Schaust du dir dieses Bild mal genauer an, siehst du, dass es eben den Schriftzug und den Stempel-Text enthält. Außerdem hat der Link eine Höhe (105px) und eine Breite (400px). Ändert man diese Angaben ändert sich die Linkgröße und man könnte dann unter Umständen nicht mehr auf das Grün klicken oder auf den ganzen Header, um dem Link zu folgen.

    Ich hoffe, du konntest das nachvollziehen. :3

    Grüße
    things
  • in: Schiffe versenken

    geschrieben von things

    Hallo loadi!

    Stimmt, AJAX ist ja die Kreuzung aus JS und PHP *grins*

    Einen richtigen Plan gibt es für das Spiel noch nicht - auch über ein Herausforderungssystem möchte ich noch gar nicht nachdenken. Eigentlich möchte ich es erstmal so gestalten, dass man gegen den PC spielt und es später auch auf User vs User ausweiten kann.
    Die Feedback-Sache hatte ich noch überhaupt nicht auf dem Schirm - danke dafür!

    Dein Beitrag hat mir auf jeden Fall weiter geholfen. Dann werde ich eben noch AJAX lernen - aber man lernt ja eh nie aus, oder? *s*

    Grüße
    things
  • in: Schiffe versenken

    geschrieben von things

    Hallo zusammen!

    Eine Freundin fragte mich neulich, ob ich Schiffe versenken für eine Website programmieren könnte. Hintergrund ist eine Piraten-Homepage.

    Natürlich sagte ich "Ja, das geht schon" - ich zweifel auch nicht daran, dass ich das hinkriege, die Frage ist nur wie sauber und in welcher Zeitspanne *grins*

    Darum bin ich nun am überlegen: Ich kann JavaScript, PHP & SQL, ActionScript3 und TypoScript - letzteres wird mir aber nicht weiter helfen! Leider kann ich keine der Sprachen 100%ig sicher, aber gut genug, dass ich immer alles hinbekommen habe, was ich wollte :)

    Ihr seht, der Threat steht unter PHP - in der Ahnung, dass die angemeldeten Benutzer das auch mal gegen einander spielen sollen, habe ich mich nun für diese Variante entschieden - mit JS und AS wüsste ich nämlich nicht, wie ich eine Interaktion mit einem anderen Client herstellen kann.
    Nun grübel ich aber, wie ich das eigentliche Spiel aufziehen kann:
    - die Feldgröße wird clientseitig festgelegt und in Form von verlinkten Quadraten ausgegeben
    - vom Server werden aus der DB die Größe der Schiffe geholt

    Und nun? ^^"
    Ich habe überlegt, die Feldnamen (A1, A2, A3, ...) in einem Array abzulegen und zufällig bei den Schiffen auszuwählen, auf welchem Feld das Schiff beginnt. Dann auch noch ausloten ob horizontal oder vertikal. Dann werden die Felder, die das Schiff bedeckt aus dem Array gelöscht - genau, wie die Felder direkt daneben. Dann kann das nächste Schiff positioniert werden.
    Das klingt für mich nun nach einer wahnsinns Abfragerei und ich kann mir vorstellen, dass es geschickter geht... Aber ich komme nicht drauf *s*

    Vielleicht hat ja einer von euch grad eine spontane Idee, wie man sowas geschickt ausziehen kann. Ich würde mich sehr freuen!

    Grüße
    things
  • in: WP Design für IE anpassen

    geschrieben von things

    Hi!

    Freut mich!

    In IE6 - 8 stehen die Bilder noch immer Kopf und im IE 7 & 8 ist der RSS-Link abgeschnitten (zu kleine Höhenangabe!?). Warum die Bilder Kopfstand machen, weiß ich noch immer nicht. Über eine Lösung des Problemes, wäre ich auch sehr froh!

    Du kannst dir das ganze ansehen, wenn du das Programm "IE Tester" herunter lädst - einfach mal googeln...

    Grüße
    things
  • in: WP Design für IE anpassen

    geschrieben von things

    Hi!

    Also ich hab mir die Seite mal gespeichert und hab den Code mal dreckig rein geschrieben. Er funktioniert und du musst ihn nur noch entsprechend einpflegen.

    Wichtig ist eben, dass du den LINKS das Bild zuweist und nicht dem LIs

    <style type="text/css">
    #nav a {
    	border:1px solid red; 
    	height: 160px;
        opacity: 0.8;
        position: relative;
        width: 145px;
    	background-repeat:no-repeat;
    	background-position:0 0;
    	background-color:transparent;
    }
    
    #menu-item-1226 a { 
        background-image: url("http://www.intoxi-hd.de/wp-content/themes/arras/images/menu/Home-Polaroid.png");
    }
    #menu-item-1226 a:hover {
        background-image: url("http://www.intoxi-hd.de/wp-content/themes/arras/images/menu/Home-Polaroid-on.png");
    	opacity:1;
    }
    
    .quick-nav a {
        color: #000000;
        font-size: 30px;
        height: 90px;
        position: relative;
        text-decoration: underline;
        width: 80px;
        opacity: 0.8;
    	background-repeat:no-repeat;
    	background-position:0 0;
    	background-color:transparent;
    }
    
    #rss {
        background-image: url("http://www.intoxi-hd.de/wp-content/themes/arras/images/menu/RSS-Polaroid.png")
    }
    #rss:hover {
        background-image: url("http://www.intoxi-hd.de/wp-content/themes/arras/images/menu/RSS-Polaroid-on.png");
    	opacity:1;
    }
    
    </style>
  • in: Element von Scrollbalken ausschließen

    geschrieben von things

    Hi!

    @sneppa
    Wie schon erklärt geht das nicht, da ich auch darauf vorbereitet sein möchte, dass man das Browserfenster auf 300px verkleinert, wenn man noch andere Fenster zeitgleich sehen will.
    Außerdem benutze ich doch schon eine min-width.

    @heroes-of-legends
    Die Idee ist nicht schlecht! Allerdings habe ich noch Probleme mit der Positionierung des Codes: dass der Body den overflow-x:hidden bekommt ist klar, aber ich kann dem umschließenden website-Div nicht den horizontalen Scrollbalken geben da in dem Div auch die Fensterlade liegt.
    Nehme ich nun das Div, dass den ganzen horizontalen Contentbereich umschließt, kriege ich auch keinen Scrollbalken.. ôo Liegt sicher auch daran, dass das website-Div die Mindestbreite hat, oder?

    Hast du da noch eine Idee?

    <body style="overflow-x:hidden;">
    
    <div id="middle" style="display:block; overflow:hidden; width:auto; overflow-x:scroll !important;">
    [... CONTENT ...]
    </div>


    Grüße
    things
  • in: WP Design für IE anpassen

    geschrieben von things

    Da du das HGbild und die anderen Effekte (wenn du meinen Code so übernommen hast) nun vom li auf das a gelegt hast, musst du natürlich auch die hover anpassen:
    #menu-item-1226 a:hover {
    opacity: 1;
    }

    (Bildadresse und -position musst du beim hover nicht angeben, wenn sie sich nicht verändern. a:hover hat die selben Eigenschaften wie a + die neu definierten Eigenschaften)

    Für die Zusatzlinks natürlich erstmal wieder
    .quick-nav a {
    display:block;
    overflow:hidden;
    }

    Ich glaube, dass es das auch schon war. Du hast die Bilder und alles schon auf den Links. :)

    Die Bilder stehen noch immer auf dem Kopf, aber man kann sie sehen! :D Hier ansehen
    Ich glaube jedoch inzwischen, dass das irgendwie an meinem IE-Tester liegt. Ich habe eine html-Datei mit folgendem Code aufgerufen:
    <img src="BILDADRESSE.png" />

    und das Bild stand Kopf -.-"

    Wenn jemand noch eine echten IE6 hat, wäre es super, damit mal zu testen...

    Grüße
  • in: WP Design für IE anpassen

    geschrieben von things

    Du müsstest wohl einen neuen CSS-Tag machen:
    #menu-menu li a {
    display:block;
    overflow:hidden;
    }


    Und ich würde dem a-Tag das Bild zuweisen. Soweit ich weiß geht dann auch der Hover im IE, weil der nur Hovers auf as unterstützt

    in
    #menu-item-1226 a {
        background: url("../../images/menu/Home-Polaroid.png") no-repeat scroll 0 0 transparent;
        height: 160px;
        opacity: 0.8;
        position: relative;
        width: 145px;
    }


    Das Problem mit den auf den Kopf stehenden Bildern im IE6 hab ich nun bei meinem Projekt auch bekommen... ich versuche gerade herauszufinden, woher es kommt, aber zuversichtlich bin ich nicht grade... ôo

    Grüße
    things
  • in: Element von Scrollbalken ausschließen

    geschrieben von things

    Hallo!

    In der Praxis könnt ihr mein Problem hier sehen.

    Es geht um das fuchsia-div oben rechts.
    Ich möchte ein Bild auf der Website positionieren (einen Fensterladen), der über die eigentliche Website (die Hausfront) hinausragt. Dies soll lediglich die Ansicht auflockern, damit nicht alles im dem Hausfront-Kasten gequetscht ist.
    Die Hausfront hat eine variable Breite (87%) und ist mindestens 1000px breit. Wird die Website nun mit einer Auflösung > 1100 aufgerufen, entstehen da keine Probleme, aber wenn man nun mit 1024er Auflösung die Website besucht - oder das Browserfenster verkleinert, weil man nebenbei was lesen möchte - entsteht ein horizontaler Scrollbalken.
    Diesen Scrollbalken möchte ich entfernen.

    Jedoch kann ich nicht einfach den horizontalen Scrollbalken entfernen - eben für den Fall, dass man das Browserfenster verkleinert.

    Ich suche nun nach einer Möglichkeit, das Bild einzubinden, ohne dass ich einen Scrollbalken verursache.

    Kann mir jemand bitte helfen?

    Danke euch!

    Grüße
    things
  • in: WP Design für IE anpassen

    geschrieben von things

    Hi!

    Ich hab den Threat nun nicht gelesen, aber die Ansicht im IE6 ist schon sehr lustig! *grins* Alles auf dem Kopf... Bild

    Ich würde an deiner Stelle dem a das Hintergrundbild geben und den Linktext als title-Text nutzen (oder vielleicht kann man auch die Farbe "transparent" vergeben... weiß ich gar nicht oO"). Dann verpasse dem a ein
    display:block; overflow:hidden; width:auto;
    und es könnte funktionieren...

    Das ist nun das, was mir spontan einfällt - der IE mag Links keine Größe geben...

    Hast du mal versucht, den Elementen Rahmen zu verpassen um so mitzubekommen, bis zu welchem Element das Design noch funktioniert?
    Vielleicht legt der IE das Headerbild auch einfach über die Liste?

    Grüße
    things
  • in: Bilder aus Ordner auslesen (Javascript)

    geschrieben von things

    Schlagt mich nicht, aber der Weg ist meine ich dieser:
    Anfrage des Browsers -> der Server gibt die HTML-Seite weiter -> PHP geht in das Dateisystem, sammelt die Daten und liefert sie ins HTML -> HTML kommt im Browser an -> JavaScript wird (ggf) ausgeführt

    Also wenn du in HTML eine PHP-Abfrage schreibst, kannst du natürlich die Ergebnisse auf dieser Seite nutzen. Und einfacher gehts nicht :)

    Grüße
    things
  • in: Browserkompatibilität

    geschrieben von things

    Hallo!

    Also ich als Webdesigner muss natürlich auch auf Browserkompatibilität achten. Darum kann man bei mir finden:
    * Firefox
    * Internet Explorer
    * Opera
    * IE-Tester
    und einen älteren Firefox muss ich mir nochmal besorgen

    Wenn man ein bisschen auf seinen Code achtet, kannst du in IE6 und dem neusten FF die gleichen Ergebnisse ohne Browserweiche erzielen.
    Vermeide einfach margins nach Möglichkeit und benutze ab und an mal
    display:block;
    overflow:hidden;

    als CSS-Attribut - das hat mir schon so manches Problem weggeschubst ^^

    Einfach einmal die Browser durchsehen - muss bei einer großen Seite ja nicht jede Unterseite sein, aber eben die kritischen Elemente.

    Grüße
    things
  • in: Suche Tipps zur verbesserung meines Logos

    geschrieben von things

    Hi!

    Sorry, dass ich nun den Miesmacher spiele, aber ich sehe das nun gar nicht als Logo.
    Ich habe nun kein Logodesgin im Studium gehabt, aber es sollten klare Linien vorhanden sein und nicht ein umgefärbtes Bild aus dem Netz, wo die Haare noch so geschnitten sind, dass man den halben Kopf mit abgesäbelt hat...

    Für mich sieht es eher aus wie ein schnelles Avatar, in dem man unbedingt etwas Text packen wollte.
    Der Schriftzug "coded by" hat in einem Logo soweit gar nichts zu suchen - außer, es ist dein Slogan. Auch die Websiteadresse ist eigentlich nie in einem LOGO drin. Das Bild ist wie schon gesagt abgeschnitten und das solltest du auf jeden Fall vermeiden - genau wie nun noch einen Rahmen darum zu ziehen. Es ist kein Avatar! Mache statt dessen eine Grafik, die alleine steht und die du sowohl in eine Ecke als auch in der Mitte eines riesigen Freiraumes platzieren kannst.

    Logo bedeutet eigentlich einen Schriftzug aus dem Firmen/Produktnamen und evtl. ein kleines, grafisches Gimmik. Am besten, du machst dir sowas in einem vektorbasiertem Programm, wie z.B. Adobe Illustrator, dann kann man die Grafik auf beliebig groß speichern und die Schrift ist nicht so verschwommen.

    Somit würde ich leider zu deinem Logo sagen: Thema verfehlt...

    Grüße
    things
  • in: HTML - Liste zentrieren

    geschrieben von things

    Hi!

    Wenn du für das ul eine bestimmte Breite hast kannst du auch mit "margin: 0 auto" arbeiten :)

    Grüße
  • in: Dropdown mit HTML und CSS - Problem

    geschrieben von things

    Hi!

    Also ich denke, worauf simuliertes hinaus will ist, dass der Code nicht grade die feine Art ist und du bei der Tabelle der ersten Navebene allen td-s eine ID "navi_td" vergeben hast. Das ist ein No-Go! Eine ID darf nur 1x auf einer Seite vorkommen. Ansonsten gibts Komplilationen. Nutze für solche Fälle, wo du alle Elemente gleich stylen willst, Klassen und nur bei Elementen, von denen du weißt, dass sie NIE mehrmals auftauchen, eine ID.

    Außerdem öffnest du eine Liste, schließt sie nicht und packst direkt dort eine Tabelle rein. Listen (ul) werden mit Listenpunkten (li) gefüllt und DORT könntest du eine Tabelle einstellen - was in diesem Fall aber keinen Sinn ergeben würde...

    Grüße
    things

    Edit: Ne, sorry. Hab grad versucht, dir zu helfen, aber bei dem Code blick ich echt nicht durch, was du da bewerkstelligen willst! Der ist total kaputt. Da fehlen Unmengen an schließenden Tags und die Verschachtelung ist auch nicht gut! Hast du ein Online-Beispiel, damit man da vielleicht besser - und den kompleten Code - schauen kann?
  • in: Mysterium Joomla! - Inhalte erstellen

    geschrieben von things

    Hallo zusammen!

    Ich möchte mit einer Freundin eine Website machen. Leider kann sie kein HTML oder so und darum möchte ich ein CMS einsetzen. Da ich bisher nur mit TYPO3 Kontakt hatte, habe ich mich nun für Joomla! entschieden, weil es - soweit ich informiert bin - nicht so umfangreich wie TYPO3 ist und auch häufig benutzt wird.

    Allerdings stoße ich direkt nach der Installation auf Probleme. Gut, ich habe schonmal den Admin-Bereich gefunden und habe einen "Beitrag" angelegt - soweit bin ich bei Drupal nicht gekommen. Auch ein Template konnte ich schon aktivieren und es etwas anpassen. Allerdings gefällt mir diese "Beitrag"-Sache nicht.
    Wir möchten keinen Blog schreiben, wo immer steht "von xy, am xx.xx.xx Kommentare (1)". Es wird mehr eine Info-Seite sein mit Spielcharakter. Auf jeden Fall möchte ich gerne - wie in TYPO3 - eine Möglichkeit haben "Text", "Tabelle", "Text mit Bild", "Bilder", etc anzulegen. Ich weiß, dass das in Joomla möglich sein muss und ich suche nun schon einige Tage im Netz nach der Lösung aber irgendwie bin ich wohl schlichtweg zu dämlich. :scared:

    Es wäre schön, wenn mir jemand helfen könnte. Tut mir wirklich leid, dass ich hier eine - sicherlich - so banale Sache erfragen muss, aber ich hab wirklich noch nichts gefunden...

    Grüße
    things
  • in: Vollformatiges Fotolayout - wie umsetzen?

    geschrieben von things

    Halol ihr zwei!

    Sorry, ich hatte viel zu tun und kann jetzt erst antworten...

    freddy, sorry, aber ich glaube du hast mich nicht ganz verstanden. Ich weiß, was ich tun muss, um das Layout dynamisch zu machen. Die Mindestbreite liegt bei 1000px und je nach Auflösung werde ich die margins für die eigentliche Page definieren. Du siehst es an der Navigation, dass ich das bereits umsetze ôo

    Wenn das Laden der Website nicht am HG liegen soll, dann frage ich dich:woran sollte es dann liegen? Das Bild ist groß und ich habe es nach meinen Möglichkeiten komprimiert. Dass es nun nur einige kBytes sind ist so und ich weiß trotzdem nicht, warum es so lange braucht, bis die Website da ist.

    fabo, die Bilder sind inzwischen gelöscht, aber als ich zwischendurch mal reingesehen habe habe ich gesehen, dass sie mit meinen identisch waren. Nur dass es png sind. Was hast du denn an den Bildern gemacht? Oft genug sind GIFs kleiner als PNGs und darum glaube ich nicht, dass du einfach nur das Dateiformat geändert hast...

    Grüße
    things
  • in: Darstellungsprobleme Firefox / Internet Explorer

    geschrieben von things

    Hi!

    Setz für die Nav einfach ein "float:left", lege den zeiger und den content in ein div hinter dem Menu-Div und floate die rechts. Lass alles margin weg und mache die Divs nur so breit, wie der Inhalt + Abstand zum linken bzw. rechten Rand. Die paar Pixel Abstand zwischen Menu und Inhalt werden dann wahrscheinlich reichen, damit es auch im IE funktioniert :)

    Grüße
    things
  • in: Vollformatiges Fotolayout - wie umsetzen?

    geschrieben von things

    Hallo zusammen!

    Bevor mein neustes Projekt richtig konkrete Probleme produziert möchte ich eines gerne nun schon klären: Ladezeiten.

    Ich habe ein Layout für eine Hexenschule entworfen - die Seite wird verspielt und ist eher auf Kinder ausgerichtet - und teste im Moment die Umsetzung in HTML. Das Layout seht ihr als Bild hier. Die Website soll die Anmutung eines Häuschens haben in dessen Türrahmen der Inhalt kommt. Das Hauptmenu steht im Türbalken, das Untermenu links auf den Steinen und unter der Treppe findet der Footer Platz.
    Soweit bin ich zufrieden. Das Layout soll jedoch auch dynamisch breit sein. Angelegt ist es auf 1000er Breite, bei breiteren Bildschirmen möchte ich aber die Hausenden weiter zum Bildschirmrand ziehen. Die ersten Codeteile findet ihr auf dieser Seite.

    Allerdings braucht der Spaß zum laden, so wie es ist - in 2 Farben, als 1 großes Bild - auf meinem localhost über 3Sekunden und wenn noch Inhalt und kleinteiligere Grafiken hinzu kommen wird es noch länger dauern. Ich merke schon, dass es hier bei Lima-City deutlich schneller geht, jedoch würde ich mich dennoch sehr über Tipps freuen, wie ich die Seite performanter machen kann - wenn nämlich die Farbe und die Kleinigkeiten hinzu kommen sind wir dann doch bei 3 Sekunden... :P

    Ich freue mich auf eure Anregungen! ^^

    things
  • in: JS: Automatisch zum nächsten Feld springen

    geschrieben von things

    So, um das ganze nochmal abzuschließen poste ich nun meinen endgültigen Code nochmal.

    Er geht nun im IE und FF und auch Chrome und Opera tun was ich will:
    * springt man in das nächste Input, wird der Inhalt markiert und kann überschrieben werden
    * es ist möglich den ersten Buchstaben in einem Feld auf ein anderes Feld zu übertragen
    * per Tastatur ist es möglich zwischen den Inputs zu navigieren
    * man kann über Strg+Pfeil einen Text markieren
    * man kann auch den letzten Buchstaben im Input markieren, ohne zu springen
    * auch Umlaute werden als Buchstaben behandelt

    Danke nochmal an dich, fabo! Du hast mir wirklich geholfen ^^

    <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
    <html>
    <head>
    <title>Zauberspruchgenerator</title>
    <script type="text/javascript">
    
    /* ruft die benötigten Funktionen auf */
    function aktualisieren(input, event) {
    	//Inputinhalt in text speichern
    	var value = input.value;
    	//Variabel start mit Zahl (CursorPos) füllen
    	var start = cursorposition(input);
    	//der Inputinhalt wird vor der Cursorstelle abgeschnitten 
    	var hintercursor = value.substring(start);
    	var regex = /^[a-zäöü ]+$/i;
    	if(!value.match(regex)) {
    		document.getElementById("ausgabe").innerHTML = "Bitte benutzen Sie nur Buchstaben für Ihre Eingabe!";
    	}
    	else {
    		document.getElementById("ausgabe").innerHTML = "";
    	}
    	vergleichen(start, hintercursor, input.id, event);
    }
    
    var markierung = "";
    
    /* Auslesen der Cursorposition um in der Funktion "vergleichen" ggf weiter zu springen */
    function cursorposition(input) {
      input.focus();
      /* für Internet Explorer */
      if(typeof document.selection != 'undefined') {
        /* Einfügen des Formatierungscodes */    
    	/* Position in Zahl ausgeben */
    	var position = document.selection.createRange();
    	position.moveStart ('character', -input.value.length);
    	var IEcaretPos = position.text.length;
    	/* wenn Text markiert, ihn in der Variabel speichern */
    	markierung = document.selection.createRange().text;
    	return IEcaretPos;
      }
      /* für neuere auf Gecko basierende Browser */
      else if(typeof input.selectionStart != 'undefined')
      {
        /* Einfügen des Formatierungscodes */
        var FFcaretPos = input.selectionStart;
    	return FFcaretPos;
      }
    }
    
    /* prüft ob die Maximallände erreicht und hinter dem Cursor kein Inhalt mehr steht - setzt den Fokus in diesem Fall auf das nächste Element */
    function vergleichen(cursorpunkt, hintercursor, id, e) {
    	var maxlange = document.getElementById(id).maxLength;
    	/* Keycode um Sprünge mit Tab(), Runterpfeil() und Linkspfeil() abzufangen */
    	e = e || window.event;
    	var taste = e.which || e.keyCode;
    	/* nur Buchstaben(65 - 90) und Leerzeichen(8) und Rechtspfeil(39) und ä(222), ö(192) und ü(59) */
    	if(taste >= 65 &&  taste <= 90 || taste == 8 || taste == 39 || taste == 222 || taste == 192 || taste == 59 || taste == 59) {
    		var bewegung = 1;
    	}
    	else {
    		var bewegung = 0;
    	}
    
    	if(maxlange == cursorpunkt && hintercursor == "" && bewegung == 1 && markierung == "") {
    		//für IDs nach dem Muster xxxx00
    		var nachstezahl = id.substring(1);
    		nachstezahl = parseFloat(nachstezahl) + 1;
    		if(nachstezahl < 10) {
    			nachstezahl = "0" + nachstezahl;
    		}
    		else { nachstezahl = "" + nachstezahl; }
    		var id2 = id.substring(0,1) + nachstezahl;
    		//wenn es ein Element mit der neuen ID gibt
    		if(document.getElementById(id2) != null) {
    			document.getElementById(id2).select();
    		//	document.getElementById(id2).focus();
    		}
    	}
    }
    
    function silbendublizieren(position, value) {
    //für alle = gleiche Felder mit dem Inhalt füllen
    	silbenarray = document.getElementsByName(position);
    	for(var i = 0; i < silbenarray.length; i++) {
    		silbenarray[i].value = value;
    	}
    //xx0 zu xx0a: falls es Felder gibt, die den ersten Buchstaben dieses Feldes brauchen
    	var ersterbuchstabe = value.charAt(0);
    	//Felder finden, die davon abhängen
    	var abuchstabefeld = position + "a";
    	var afelder = document.getElementsByName(abuchstabefeld);
    	if(afelder.length != 0) {
    		for(var i = 0; i < afelder.length; i++) {
    			//altes Value des Feldes xx0a und festlegen des neuen Feldes
    			var altesvalue = afelder[i].value.slice(1,2);
    			afelder[i].value = ersterbuchstabe + altesvalue;
    		}
    	}	
    //xx0a zu xx0: den ersten Buchstaben an xx0 weitergeben
    	if(position.charAt(3) == "a") {
    		//Name der Zielinputs
    		var baseinputvona = position.slice(0,3);
    		//Zielinputs in ein Array
    		silbenarray = document.getElementsByName(baseinputvona);
    		for(var i = 0; i < silbenarray.length; i++) {
    			//altes Value auslesen & den ersten Buchstaben entfernen
    			var altesvalue = silbenarray[i].value;
    			altesvalue = altesvalue.slice(1,2);
    			//erster Buchstabe des eigenen Values
    			value = value.charAt(0);
    			//neuer erster Buchstabe + altes Value
    			silbenarray[i].value = value + altesvalue;
    		}
    	}
    //xx0x9z: wenn an der 5. Stelle ein z steht, wird der letzte Buchstabe von xx9 hier letzter Buchstabe
    	if(position.charAt(5) == "z") {
    		//den Inhalt von xx9 ermitteln
    		var baseinputvonz = position.slice(0,2) + position.charAt(4,5);
    		var ausgangsvalue = document.getElementsByName(baseinputvonz)[0].value;
    		//den letzten Buchstaben auslesen
    		var letzterbuchstabe = ausgangsvalue.charAt(ausgangsvalue.length - 1);
    		//den Buchstaben als letzten Buchstaben von xx0x9z definieren
    		var obergrenze = value.length - 1;
    		if(obergrenze < 1) {obergrenze = 1; }
    		var erstvalue = value.slice(0, obergrenze);
    		//alle diese Felder mit dem neuen Inhalt füllen
    		silbenarray = document.getElementsByName(position);
    		for(var i = 0; i < silbenarray.length; i++) {
    			silbenarray[i].value = erstvalue + letzterbuchstabe;
    		}
    	}
    }
    </script>
    <link rel="stylesheet" type="text/css" href="style.css" media="all">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head><body>
    <div class="inhalt">
    
    <table style="border-width:0px;">
    <tr>
    <td width="45%">Die Zauberspr&uuml;che der Hexen in der Serie lauten wie folgt:<br>
    <b>Version 1:</b> Pe-<font color="#A5CAE4">r</font>e-<font color="#A5CAE4">ka</font>-<font color="#A5CAE4">l</font>a P<font color="#A5CAE4">a</font>-<font color="#A5CAE4">po</font>-<font color="#A5CAE4">ri</font>-<font color="#A5CAE4">n</font>a Pe-<font color="#A5CAE4">k</font>e-la-to Pe-<font color="#A5CAE4">p</font>e-la-to<br>
    <b>Version 2:</b> Pil-li Pil-li Po-pa-lu-<font color="#A5CAE4">ra</font> Po-pa-lu<br>
    <b>Version 3:</b> Pa-<font color="#A5CAE4">me</font>-<font color="#A5CAE4">k</font>i-la-<font color="#A5CAE4">k</font> La-li-l<font color="#A5CAE4">o</font>-<font color="#A5CAE4">r</font>i Pa-<font color="#A5CAE4">lou</font><br>
    <b>Version 4:</b> Pu-<font color="#A5CAE4">ru</font>-run Pu-run Fa-mi Fa-mi Fa<br>
    <b>Version 5:</b> Pi-pi-to P<font color="#A5CAE4">u</font>-<font color="#A5CAE4">ri</font>-to Pe-pe-<font color="#A5CAE4">ru</font>-to / Pi-to Po-li-to Pu-ri-tan Pe-per-to</td></tr></table><br>
    
    <div class="ersteversion" style="display:block; overflow:hidden; padding-bottom:10px;">
    <div style="float:left; padding-right:20px;"><b>Version 1</b></div>
    <div style="float:left;">
    <form name="muster1" action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="post"> 
        <input id="d01" name="ds1" value="Pe" class="gleich1" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d02" name="1" value="r" class="buchstabe buchstabe1" onkeyup="aktualisieren(this, event)" maxlength="1" type="text" />
        <input id="d03" name="ds2" value="e" class="buchstabe gleich2" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d04" name="2" value="ka" onkeyup="aktualisieren(this, event)" maxlength="2" type="text" />
        <input id="d05" name="3" value="l" class="buchstabe buchstabe1" onkeyup="aktualisieren(this, event)" maxlength="1" type="text" />
        <input id="d06" name="ds3" value="a" class="buchstabe gleich3" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d07" name="ds1a" value="P" class="buchstabe ahnlich1 neueswort buchstabe1" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d08" name="4" value="a" class="buchstabe" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d09" name="5" value="po" onkeyup="aktualisieren(this, event)" maxlength="2" type="text" />
        <input id="d10" name="6" value="ri" onkeyup="aktualisieren(this, event)" maxlength="2" type="text" />
        <input id="d11" name="7" value="n" class="buchstabe buchstabe1" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d12" name="ds3" value="a" class="buchstabe gleich3" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d13" name="ds1" value="Pe" class="gleich1 neueswort" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d14" name="8" value="k" class="buchstabe buchstabe1" onkeyup="aktualisieren(this, event)" maxlength="1" type="text" />
        <input id="d15" name="ds2" value="e" class="buchstabe gleich2" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d16" name="ds4" value="la" class="gleich4" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d17" name="ds5" value="to" class="gleich5" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d18" name="ds1" value="Pe" class="gleich1 neueswort" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d19" name="9" value="p" class="buchstabe buchstabe1" onkeyup="aktualisieren(this, event)" maxlength="1" type="text" />
        <input id="d20" name="ds2" value="e" class="buchstabe gleich2" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="1" type="text" />
        <input id="d21" name="ds4" value="la" class="gleich4" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d22" name="ds5" value="to" class="gleich5" onkeyup="aktualisieren(this, event)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="d23" type="submit" value="Absenden" name="muster1" style="width:80px; margin-left:30px;" />
    </form>
    </div>
    <?php
    if(isset($_POST["muster1"])) {
    	$a = $_POST["ds1"];
    	$b = $_POST["1"];
    	$c = $_POST["ds2"];
    	$d = $_POST["2"];
    	$e = $_POST["3"];
    	$f = $_POST["ds3"];
    	$g = $_POST["ds1a"];
    	$h = $_POST["4"];
    	$i = $_POST["5"];
    	$j = $_POST["6"];
    	$k = $_POST["7"];
    //	$l = $_POST["ds3"];
    //	$m = $_POST["ds1"];
    	$n = $_POST["8"];
    //	$o = $_POST["ds2"];
    	$p = $_POST["ds4"];
    	$q = $_POST["ds5"];
    //	$r = $_POST["ds1"];
    	$s = $_POST["9"];
    //	$t = $_POST["ds2"];
    //	$u = $_POST["ds4"];
    //	$v = $_POST["ds5"];
    	echo('<p>' . $a . $b . $c . $d .  $e . $f . ' ' . $g . $h . $i . $j . $k . $f . ' ' . $a . $n . $c . $p . $q . ' ' . $a . $s . $c . $p . $q . '</p>');
    }
    ?>
    </div>
    <div id="ausgabe"></div>
    </div></div></body></html>
  • in: JS: Automatisch zum nächsten Feld springen

    geschrieben von things

    Hallo fabo, danke dass du dir solche Mühe machst :)

    Du musst allerdings meine Antwort schon satzweise nehmen *s* Ich hab grad irgendwie das Gefühl wir fangen 2 Schritte weiter zurück an, as ich schon gekommen bin xD"
    Du hast Recht, mit deinem Code springt der Cursor sowohl im IE als auch im FF. Allerdings sind die ganzen kleineren Code-Steps, die ich gemacht habe damit nichtig.
    Stimmt auch wieder - der Cursor geht im IE an den Anfang und im FF ans Ende - darum hab ich in meinem Code auch alles selectiert. Ja, das kann man noch anpassen.
    Das Springen, wenn schon die maximale Anzahl an Zeichen erreicht ist, habe ich in wochenlanger Arbeit behoben xD" Es wird die Position vom Cursor erkannt und nur,wenn er an der letzten Stelle steht, wird das nächste Feld fokussiert. Somit ist es möglich eine schon vorhandene Eingabe im nachhinein mit der Tastatur zu ändern.

    Ich verstehe grade nicht, warum du die Tabtaste ignorieren möchtest. Und Shift und die Pfeile.. Schaltet man die Tabtaste aus, kann der Benutzer nicht mehr über die Tastatur vor oder zurück und wenn die Pfeiltasten auch noch weg sind ist eine Änderung ja nur noch mit der Maus möglich... Das finde ich nicht sehr benutzerfreundlich... ô.o Oder seh ich da jetzt was falsch?

    Das mit den Keycodes ist ne interessante Idee! Dass der Spaß nicht valide ist, ist klar xD Ich bin ja noch an der grundlegenden Funktion... Aber du hast Recht: ich hätte das bestimmt vergessen *lol*

    Ich werd nun am besten nochmal schauen, warum dein Code im IE geht und meiner nicht und dann haben wirs glaube ich schon *s*

    Grüße
    things
  • in: JS: Automatisch zum nächsten Feld springen

    geschrieben von things

    @fabo
    Herzlichen Dank für deine Mühe, fabo! ^o^
    Leider geht deine Lösung auch nicht im IE und wenn ich zum Beispiel in Version 1 im ersten Feld statt "Pe" "hh" eingebe, springe ich zum Ende des nächsten Feldes; möchte ich dann das "e" in dem Feld ersetzen und markiere es mit Shift+Zurückpfeil springe ich mehrere Inputs weiter... Das ist nun gar nicht, was ich möcht... o~o
    Aber danke schön! *knuff* :)

    Gruß
    things
  • in: Hintergrundbild zentrieren

    geschrieben von things

    crown-network schrieb:
    [...]
    .con_ui {
    	background:url(images/content_ui.png);
    }
    .con_bt {
    	height:15px;
    	background-position:bottom left;
    	margin-bottom:0px;
    }
    .con_cont {
    	background-position:center right;
    	background-repeat:repeat-y;
    }

    Das wichtige ist, denke ich das hier, da dort das Hintergrundbild eingebunden wird:
    .con_ui {
    		background:url(images/content_ui.png);
    	}

    Nur bekomme ich es nicht hin, das ganze zu zentrieren.
    [...]


    Hallo!

    Also:
    Dein HG ist in con_ui. Dort gibst du aber keine Angaben über die HGposition. Die steht dann automatisch auf "top left".
    In con_cont ist die HGpsition "center right" unsinnig. Entweder center ODER right. ;) Wahrscheinlich ist das das Problem - wenn es sich um den Hintergrund in dem Div "con_ui con_cont" handelt. Der richtige Code wäre
    background-position:top center;


    Ich hoffe, dass dir das weiter hilft. :)

    Grüße
    things
  • in: JS: Automatisch zum nächsten Feld springen

    geschrieben von things

    Hallo!

    limabone schrieb:
    Es ginge auch einfacher ( und für alle browser )
    <input type="text" onKeyUp="if(this.value.length==4) { document.getElementById("nextinput").focus(); }" />

    Das musst du dann eben bei allen input Feldern machen ;)
    Hoffe ich konnte helfen :biggrin:

    Sorry, limabone, aber das geht nicht - so wird ja immer, wenn eine Taste in dem voll ausgefüllten Feld gedrückt wird, zum nächsten gesprungen. Ich möchte aber die Möglichkeit haben, im Nachhinein mit den Pfeiltasten auch noch durch die Eingabe zu navigiernen.

    @galaktica
    Ja, gut - wobei der Code komplett ist. Klick mich! :)
    Goggle kenn und liebe ich, aber es hat mir in den letzten Monaten bei dem Projekt nicht über diese Schwele geholfen o~o

    kostenlose-javascripts schrieb:
    Da der IE nicht den besten Ruf hat, benutzt ihn sowieso fast kein Mensch. Die meisten Seiten werden
    nicht vom IE unterstützt. Du kannst ja eine javascriptabfrage machen und falls jemand mit dem IE vorbeisurft erscheint eine Meldung er möge bitte den Browser wechseln.

    Ich hoffe, das war ein Witz, kostenlose-javascripts. Der IE ist immernoch der weitverbreiteste Browser weltweit und den IE6 gibts auch noch zu nem bemerkenswerten Prozentsatz. Den IE zu ignorieren kommt so gar nicht in Frage und von der Usability her ist das Selbstmord, einen anderen Browser zu verlangen! *s*
    Außerdem MUSS es ja gehen können! xD

    Ich hoffe, der Online-Code hilft weiter :)

    Grüße
    things

  • in: JS: Automatisch zum nächsten Feld springen

    geschrieben von things

    Hallo zusammen!

    Ich habe ein kleines Projekt: ein (Zauber-)Spruchgenerator. Der orientiert sich an verschiedenen Vorlagen. Der Benutzer soll nun die verschiedenen Versionen nutzen können, indem er Input-Felder benutzt. Dabei steht in jedem Feld schon die Silbe der Vorlage, dies soll überschrieben werden.
    Jedes Feld beinhaltet zwischen ein und vier Buchstaben. Gibt man seine gewünschte Silbe ein und hat die Maximallänge des Inputs erreicht, soll der Fokus auf dem nächsten Feld liegen und der Inhalt überschreibbar sein.

    Ich war sehr froh, als es schließlich geklappt hat - im Firefox. Als ich nun zum Abschlusscheck auch den IE bemüht habe, wurde ich herb enttäuscht, da dort springt der Fokus nicht in das nächste Feld.

    Ich wäre sehr froh, wenn mir jemand helfen könnte, dass auch im IE der Fokus auf das nächste Feld springt, wenn der Cursor auf der maximalen Feldlänge steht.

    Hier meine Codes:
    HTML
    <div class="zweiteversion" style="display:block; overflow:hidden; padding-bottom:10px">
    <div style="float:left; padding-right:20px;"><b>Version 2</b></div>
    <div style="float:left;">
    <form name="muster2" action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="post"> 
        <input id="e01" name="es3" value="Pi" class="gleich2" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e02" type="text" name="es2" value="li" class="gleich3" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" />
        <input id="e03" name="es3" value="Pi" class="gleich2 neueswort" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e04" name="es2" value="li" class="gleich3" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e05" name="es1" value="Po" class="gleich4 neueswort" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e06" name="es5" value="pa" class="gleich5" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e07" name="es4" value="lu" class="gleich1" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e08" name="1" value="ra" onkeyup="aktualisieren(this)" maxlength="2" type="text" />
        <input id="e09" name="es1" value="Po" class="gleich4 neueswort" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e10" name="es5"  value="pa" class="gleich5" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e11" name="es4" value="lu" class="gleich1" onkeyup="aktualisieren(this)" onblur="silbendublizieren(this.name, this.value)" maxlength="2" type="text" />
        <input id="e12" type="submit" value="Absenden" name="muster2" style="width:80px; margin-left:30px;" />
    </form>
    <?php
    if(isset($_POST["muster2"])) {
    	$a = $_POST["es3"];
    	$b = $_POST["es2"];
    //	$c = $_POST["es3"];
    //	$d = $_POST["es2"];
    	$e = $_POST["es1"];
    	$f = $_POST["es5"];
    	$g = $_POST["es4"];
    	$h = $_POST["1"];
    //	$i = $_POST["es1"];
    //	$j = $_POST["es5"];
    //	$k = $_POST["es4"];
    	echo('<p>' . $a . $b . ' ' . $a . $b . ' ' . $e . $f . $g . $h . ' ' . $e . $f . $g . '</p>');
    }
    ?></div>
    </div>


    Skriptdatei 1
    //legt die Ausgangsposition auf 0 fest
    var inputstart = 0;
    //var inputstart = input.value.length;
    
    function aktualisieren(input) {
    	//Inputinhalt in text speichern
    	var value = input.value;
    	//Variabel start mit Zahl (CursorPos) füllen
    	var start = auswahltreffen(input);
    	//wenn keine Pos, dann wie vorher
    	if (start == inputstart) {
    		return;
    	}
    	//der Inputinhalt wird vor der Cursorstelle abgeschnitten 
    	var hintercursor = value.substring(start);
    	vergleichen(start, hintercursor, input.id);
    }
    
    //gibt Zahl zurück
    //gibt die Position des Cursors zurück
    function auswahltreffen(input) {
    	//TextRange um den Cursorstand auszulesen
    	if (input.createTextRange) {
    		var bereich = document.selection.createRange().duplicate();
    		bereich.moveStart('character');
    		//wenn bereich keinen Inhalt hat, dann wird die Länge des Values zurückgegeben
    		if (bereich.text == '') {
    			return 0;
    		}
    		return 0;
    	}
    	else {
    		return input.selectionStart;
    	}
    }
    
    function vergleichen(cursorpunkt, hintercursor, id) {
    	var maxlange = document.getElementById(id).maxLength;
    	if(maxlange == cursorpunkt && hintercursor == "") {
    		//für IDs nach dem Muster xxxx00
    		var nachstezahl = id.substring(1);
    		nachstezahl = parseFloat(nachstezahl) + 1;
    		if(nachstezahl < 10) {
    			nachstezahl = "0" + nachstezahl;
    		}
    		else { nachstezahl = "" + nachstezahl; }
    		var id2 = id.substring(0,1) + nachstezahl;
    		//wenn es ein Element mit der neuen ID gibt
    		if(document.getElementById(id2) != null) {
    			document.getElementById(id2).focus();
    			document.getElementById(id2).select();
    		}
    	}
    	else {
    		document.getElementById("ausgabe").innerHTML = '';
    	}
    }


    Skriptdatei 2
    // JavaScript Document
    
    var position;
    var zeichenanzahl;
    var silbenarray;
    var muster;
    
    //wird beim Heben einer Taste aktiviert
    function weiterspringen(inputfeld){
    	//wenn eine Pfeiltaste gedrückt wird, BREAK;
    	try {
    		//wenn es ein Event-Objekt gibt (im IE)
    		if(event){
    			 document.getElementById("ausgabe").innerHTML += event.keyCode;
    			 //wenn Pfeiltasten gedrückt werden
    			 if(37 <= event.keyCode && event.keyCode <= 40) {
    				 //zurückspringen und die Funktion verlassen
    				 return;
    				 document.getElementById("ausgabe").innerHTML += "OI";
    			 }
    		}
    	}
    	//für Firefox
    	catch(ereignis) {
    		//Variabel für eine Pfeiltaste
    		var pfeiltaste = false;
    /*
    //soll: wenn Taste gedrückt, dann weiter in der Funk; WENN PFEILTASTE, gedrückt: funktion abbrechen
    		function tastendruck (ereignis) {
    			if (!ereignis) {
    				ereignis = window.event;
    			}
    		//	var key = ereignis.keyCode || ereignis.which;
    		//	alert(key);
    			var aktuelletaste = ereignis.keyCode || ereignis.which;
    		
    			 if(37 <= aktuelletaste && aktuelletaste <= 40) {
    				 //zurückspringen und die Funktion verlassen			 
    				 document.getElementById("ausgabe").innerHTML += "Pfeiltaste! ";
    				 var pfeiltaste = true;
    			 }
    		}	
    */
    		
    		
    		
    	//	document.onkeyup = tastendruck;	
    		document.getElementById("ausgabe").innerHTML += "PFeil: " + pfeiltaste + "<br />";
    		if(pfeiltaste == true) {
    			 document.getElementById("ausgabe").innerHTML += " ~~~~ PFeiltaste ist true ~~~~<br />";
    		}
    	}
    	
    	//wenn die Maximallänge erreicht ist
    	if(inputfeld.value.length == inputfeld.maxLength) {
    		//ZielID definieren
    		var buchstabe = inputfeld.id.substr(0, 1)
    		var alteID = parseInt(inputfeld.id.substr(1));
    		var neueID = alteID + 1;
    		if(neueID <= 9) {
    			var zielID = buchstabe + "0" + neueID;
    		}
    		else { var zielID = buchstabe + neueID; }
    		//Focus setzen
    		document.getElementById(zielID).focus();
    		document.getElementById(zielID).selectionStart = 0;
    	}
    }
    
    function silbendublizieren(position, value) {
    //für alle = gleiche Felder mit dem Inhalt füllen
    	silbenarray = document.getElementsByName(position);
    	for(var i = 0; i < silbenarray.length; i++) {
    		silbenarray[i].value = value;
    	}
    //xx0 zu xx0a: falls es Felder gibt, die den ersten Buchstaben dieses Feldes brauchen
    	var ersterbuchstabe = value.charAt(0);
    	//Felder finden, die davon abhängen
    	var abuchstabefeld = position + "a";
    	var afelder = document.getElementsByName(abuchstabefeld);
    	if(afelder.length != 0) {
    		for(var i = 0; i < afelder.length; i++) {
    			//altes Value des Feldes xx0a und festlegen des neuen Feldes
    			var altesvalue = afelder[i].value.slice(1,2);
    			afelder[i].value = ersterbuchstabe + altesvalue;
    		}
    	}	
    //xx0a zu xx0: den ersten Buchstaben an xx0 weitergeben
    	if(position.charAt(3) == "a") {
    		//Name der Zielinputs
    		var baseinputvona = position.slice(0,3);
    		//Zielinputs in ein Array
    		silbenarray = document.getElementsByName(baseinputvona);
    		for(var i = 0; i < silbenarray.length; i++) {
    			//altes Value auslesen & den ersten Buchstaben entfernen
    			var altesvalue = silbenarray[i].value;
    			altesvalue = altesvalue.slice(1,2);
    			//erster Buchstabe des eigenen Values
    			value = value.charAt(0);
    			//neuer erster Buchstabe + altes Value
    			silbenarray[i].value = value + altesvalue;
    		}
    	}
    //xx0x9z: wenn an der 5. Stelle ein z steht, wird der letzte Buchstabe von xx9 hier letzter Buchstabe
    	if(position.charAt(5) == "z") {
    		//den Inhalt von xx9 ermitteln
    		var baseinputvonz = position.slice(0,2) + position.charAt(4,5);
    		var ausgangsvalue = document.getElementsByName(baseinputvonz)[0].value;
    		//den letzten Buchstaben auslesen
    		var letzterbuchstabe = ausgangsvalue.charAt(ausgangsvalue.length - 1);
    		//den Buchstaben als letzten Buchstaben von xx0x9z definieren
    		var obergrenze = value.length - 1;
    		if(obergrenze < 1) {obergrenze = 1; }
    		var erstvalue = value.slice(0, obergrenze);
    		//alle diese Felder mit dem neuen Inhalt füllen
    		silbenarray = document.getElementsByName(position);
    		for(var i = 0; i < silbenarray.length; i++) {
    			silbenarray[i].value = erstvalue + letzterbuchstabe;
    		}
    	}
    }


    Es ist schon länger her, dass ich mich intensiv mit dem Code beschäftigt habe, aber ich versuche gerade, die Schnipsel, die ich mir zusammengesucht habe, wieder vollständig zu verstehen... @__@

    Vielleicht kann mir jemand einen Wink geben, wo ich die Lösung meines Fehlers finde. :)

    Ich würde mich sehr freuen!

    Liebe Grüße
    things
  • in: IE7 - JavaScript

    geschrieben von things

    Hallo!

    Ich habe seit neustem den IE7 und kriege oft die Meldunf von Internetseite, dass ich nicht die neuste Version des Flashplayers installiert oder javascript deaktiviert habe.

    Die neuste Flashplayerversion hab ich.

    Wo kann ich Javascript aktivieren???

    Grüße
    Things
  • in: Pflichtfelder

    geschrieben von things

    Ich hab keine Datenbank, das ganze geht per Email an mich.

    Leider versteh ichs nich so ganz und die Seite hilft mir grauch auch nich so weiter ^^\"
  • in: Pflichtfelder

    geschrieben von things

    Hallo!

    Ich bin noch unsicher in PHP und bastel grade an einem Formular herum. Dabei möchte ich z.B. die Eingabefelder \"Name\" und \"Farbe\" ausgefüllt haben. Das Forumlar soll nicht gesendet werden, wenn diese Felder nicht ausgefüllt sind!
    Wie mach ich das am besten? In dem Formular arbeite ich mit Textinputfeldern und Radiobuttons und in einem anderen auch mit Checkboxen und Dateiupload...

    Freue mich sehr über eure Hilfe!

    Danke!

    Grüße
    Things
  • in: Domei - Suche nach WMs für eine Fantasypage

    geschrieben von things

    Hallo!

    Ich habe seit kurzem die Seite www.Domei.de.ms (oder eben gleich zu meiner HP hier), wo ich ein Webmastercasting veranstalte um Leute zu finden, die daran interessiert sind, eine Fantasystaffelpage zu machen.
    Ich w?rde mich sehr freuen, wenn ihr mal einen Blick drauf werft und das vielleicht auch Leuten erz?hlt, die das interessieren k?nnte! ^^

    Danke vielmals!

Login zum Webhosting ohne Werbung!