51

(1 Antworten, geschrieben in Projektplanung)

Hi,

hab mal das Thema in dieses Forum verschoben und die überzähligen Beiträge gelöscht.  Zu Deinen Fragen:

Seiten wie diese werden meist in PHP geschrieben und die Daten stammen aus einer Datenbank wie MySQL. Vom Prinzip her ist es egal in welcher Sprach Du ein Webangebot schreibst, diese ist ja nur Mittel zum Zweck. Am populärsten ist nach wie vor PHP, alternativen wären Ruby, Python, Perl, .NET, etc.  Wenn Du Dir PHP erlernst dann bist Du für die Webprogrammierung auf jeden Fall richtig. Für komplexe Projekte würde ich zu einem Framwork raten und zwar am Besten mit einem MVC-Entwurfsmuster wie z.B. cakephp.com.

Zu 2tens .. normale Server mit ner ordentlichen DB (Oracle) und entsprechender Architektur.

52

(1 Antworten, geschrieben in AJAX Support)

Hi, hat sich das Problem mittlerweile erledigt?

53

(1 Antworten, geschrieben in Ajax)

Hi wuhu,

ich habe ASP schon lange an den Nagel gehängt und kenne mich mit ASP.NET nicht besonders aus. Vom Prinzip her bist Du mit AJAX aber schon richtig beraten. Den Ablauf mußt Du Dir wie folgt vorstellen:

- Anfrage an den externen Server senden (entsprechende Query)
- Antwort des Servers auswerten und an AJAX zurück liefern

Letzteres wird mittels der Eigenschaft responseXML oder responseText zurück geliefert. Wenn nur ein Status zurück gereicht wird, dann reicht theoretisch ein HEAD-Request. Dieser liefert nur den Header der Antwortseite zurück. Hier kannst Du dann gezielt die relevanten Header auslesen oder einfach mittels der Eigenschaft status prüfen, ob der Request erfolgreich war.

Das Ganze erledigst du entweder selbst per JavaScript (eigens oder per Framework nach Wahl, z.B. Prototype) oder beispielsweise über die AJAX-Komponente von .NET: http://ajax.asp.net/.

Viel Erfolg !

Hannes

54

(2 Antworten, geschrieben in JavaScript - Hilfe)

Hi .. ähm .. was soll den da geschrieben werden? Hab nicht so recht verstanden was Du genau machen möchtest.

55

(2 Antworten, geschrieben in JavaScript - Hilfe)

Hi .. wie willst das den auf dem Server abspichern. Eigentlich sollte der Inhalt z.B. ion eine DB gespeichert werden und bei der Ausgabe der Ihalt entsprechend mit beispielsweise PHP umgewandelt werden. Du kannst solche Funktionen zuhauf in Foren etc. finden.

Such mal in Google nach "php bbcode", da findest Du zahlreiche MOdule und Beispiel für das Umwandeln solcher Strings. Auf dem PEAR Network findest Du z.b. diese Klasse: http://pear.php.net/package/HTML_BBCodeParser.

Viel Erfolg!
Hannes

56

(3 Antworten, geschrieben in Spiele)

MasterHero,

hab mir mal die Demo geladen .. finde ich ne gute Idee. Textadventures gibts ja zahlreiche .. der Erfolg ist dabei immer von der Story und den Möglichkeiten abhängig. Ich denke dass Du auf dem richtigen Weg bist. Das Szenario wird schon mal spannend aufgebaut und die Kampfkomponente sorgt für Aktion ;o) Bin ja mal gespannt, wie Du die Themen Handel, Weltkarte, Inventar, etc. weiterführst ..

Eine Möglichkeit das Spiel zu beenden und abzuspeichern wäre fein .. auch für die Beta ;o)

Ist für das Spiel auch der Quellcode erhältlich? Mich würde auch die Entstehungsgeschichte des Games interessieren. Also wie Du auf die Story gekommen bist, wie Du den Polot erstellst .. evtl. gibts den ja auch einzusehen ..

Gabs nen spezielle Grund für FreeBasic? C/C++ oder C# wäre auch interessant für so ein Game ...

Also grundsätzlich ein nettes Projekt, dass für kurze Unterhaltung sorgen kann. Weiter so!

lg
Hannes

57

(3 Antworten, geschrieben in JavaScript - Allgemeines)

Hi Jachel,

Du wirst sicher verstehen, wenn man dir keine Anwendung als Lösung vorprogrammiert. Für verschieden umfangreiche Shopsysteme gibt es zahlreiche Lösungen .. unter www.hotscripts.com findest Du z.B. für alle möglichen Programmiersprachen entsprechende Lösungen. Ich selbst habe mal vor längerer Zeit einen kostenlosen JavaScript-Warenkorb erstellt, den Du unter http://jg-webdesign.de/freeware/jgShop.php herunter laden kannst.

Viel Erfolg,

Hannes

58

(2 Antworten, geschrieben in AJAX Support)

Hi Doris,

Du mußt das "handle" in Anführungszeichen setzen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>script.aculo.us</title>
    <script src="lib/prototype.js" type="text/javascript"></script>
    <script src="src/scriptaculous.js" type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    window.onload=function()
    {
        d = new Draggable(
            'bsp',
            {
                change:check,
                handle:'innen'
            }
    );
    }
    var check = function()
    {
        if (parseInt($('bsp').style.left) >= 300)
        {
            this.constraint = 'vertical';
        }
        if (parseInt($('bsp').style.top) >= 400)
        {
            d.destroy();
        }
    }
    //]]>
    </script>
</head>
<body>
    <div id="bsp" style="position:absolute;color:#ff0000;">
        <pre>
            + ------ +
            |        |
            |        |
            + ------ <span id="innen" style="color:#0000ff;">+</span>
        </pre>
    </div>
</body>
</html>

So sollte es klappen.

vg
Hannes

59

(11 Antworten, geschrieben in JavaScript - Hilfe)

Oki .. da ist wohl ein dicker Wurm drin ;o) Ich komme leider erst am WE dazu, mich mal darum zu kümmern, falls es kein Anderer löst ;o)

60

(11 Antworten, geschrieben in JavaScript - Hilfe)

Hier mal in Kürze ein Beispiel (nicht ganz sauber) und die Screenkoordinaten werden noch nicht korrekt übergeben.

<script language="JavaScript">
var Page = {
    pageHeight : function()
    {
        return self.innerHeight || document.body.clientHeight || document.documentElement.clientHeight ;
    },
    pageWidth : function()
    {
        return self.innerWidth|| document.body.clientWidth || document.documentElement.clientWidth ;
    },
    pageSize: function() {
        return { width: this.pageWidth(), height: this.pageHeight() };
    },
    pageSet: function(c)
    {
        var dim = c.split("|");
        self.innerWidth = dim[3];
        document.body.clientWidth = dim[3];
        document.documentElement.clientWidth = dim[3];
        self.innerWidth = dim[2];
        document.body.clientWidth = dim[2];
        document.documentElement.clientWidth = dim[2];
        window.screenY = dim[0];
        window.screenX = dim[1];
    }
};
var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.erase('_test') = '1');
  }
};

function setLastWindowData(sName){
    var a = new Date();
    a = new Date(a.getTime() +1000*60*60*24*365);
    sPosY = window.screenY
    sPosX = window.screenX
    sHeight = Page.pageHeight();
    sWidth = Page.pageWidth();
    Cookie.set(sName,sPosY+"|"+sPosX+"|"+sHeight+"|"+sWidth,a.toGMTString());
}

function loadWin(sName)
{
    if (Cookie.get(sName))
    {
        Page.pageSet(Cookie.get(sName));
    }
}

window.onresize=function() {  setLastWindowData("test"); }
window.close=function() {  setLastWindowData("test"); }
window.onload=function() {  loadWin("test"); }
</script>
Close me and reopen me, and you will see me on the same position in the same size.. thx

Schau mal, ob Du damit weiter kommst.

Hannes

61

(4 Antworten, geschrieben in JavaScript - Hilfe)

Wie es scheint, klappt dies beim IE nur bei Formularelementen. Ich bin mir jetzt nicht ganz sicher, aber ich meine das getElementsByName() eigentlich für Formulare gedacht war?

62

(11 Antworten, geschrieben in JavaScript - Hilfe)

Poste doch mal dein komplettes Beispiel, bzw. gib mal nen Link zu Deinen Versuch.

63

(4 Antworten, geschrieben in JavaScript - Hilfe)

Äh .. getElementsByName() wendest du auf Element mit einem Name-Attribute an. Also z.B.

<form>
a <input type="radio" name="blub" value="1" />
b <input type="radio" name="blub" value="2" />
c <input type="radio" name="blub" value="3" />
</form>
<script>
var arrayTargetObjects = document.getElementsByName("blub");
arrayTargetObjects[1].checked=true;
</script>

Und getElementsByTagName auf bestimmte XHTML-Elemente, z.B.

<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<script>
var arrayTargetObjects = document.getElementsByTagName("span");
alert(arrayTargetObjects[1].innerHTML);
</script>

vg
Hannes

64

(11 Antworten, geschrieben in JavaScript - Hilfe)

Hi,

in aller Kürze ein einfaches Beispiel für die Dimension der Seite selbst (bin leider gerade etwas im Streß).  Die Screenposition kannste entsprechend ergänzen.

var Page = {
    pageHeight : function()
    {
        return self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
    },
    pageWidth : function()
    {
        return self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    },
    pageSize: function() {
        return { width: this.pageWidth(), height: this.pageHeight() };
    }
};
alert(Page.pageHeight());
alert(Page.pageWidth());
alert(Page.pageSize().width);
alert(Page.pageSize().height);

vg
Hannes

65

(1 Antworten, geschrieben in JavaScript - Hilfe)

Ähm .. bei mir wird alles richtig angezeigt .. test, test2 und test3?

Hallo,

sprech die Tabellen lieber mit der display-Eigenschaft an. Ein mögliches Beispiel dazu könnte wie folgt aussehen:

<head>
<style>
#t1 { display: none; }
#t2 { display: none; }
#t3 { display: none; }
</style>

<script type="text/javascript">
function modus2(f)
{
    var tab = (f.options[f.selectedIndex].value);
    if (tab!=0) document.getElementById(tab).style.display = 'block';
}
</script>

</head>
<body >

<form
method="POST" target="#" name="modus">
<select onchange="modus2(this);" name="auswahl">
<option value="0">waehlen</option>
<option value="t1">tab1</option>
<option value="t2">single</option>
<option value="t3">multi</option>

</select>
</form>


<table id="t1">
<tr>
    <td>Tabelle 1</td>
</tr>
</table>

<table id="t2">
<tr>
    <td>Tabelle 2</td>
</tr>
</table>

<table id="t3">
<tr>
    <td>Tabelle 3</td>
</tr>
</table>


</body>
</html>

Hoffe das hilft Dir weiter.

Hannes

67

(1 Antworten, geschrieben in Devshare Plausch)

Moin auch,

Ja, das ist doch mal nett ;o) Uns gibt es ja auch schon sehr lange und darüber hinaus. Das erste Forum enstand schon 1997 auf Kakao&Kekse. Die Quantität unserer Beiträge wirkt sich auch nicht negativ auf die Qualität der Beiträge aus ;o) Mal sehen ob wir wieder mehr Zulauf bekommen. Aber lieber weniger los, dafür kein Spam und sinnvolle Anworten.

c'ya

wollik schrieb:

Noch eine Idee zum "obj.tabindex = .." Attribute (in select oder option),  dem "obj.text = .." Attribute (in input)  oder dem " obj.maxlength = .." Attribute (in select) ?

Welches text-Attribut in einem INPUT Tag meinst Du?

maxlength  und tabindex sollte eigentlich wie gesehen funktionieren .. habs aber nicht getestet. Hast Du schon mal probiert, diese Attribute mittels setAttribute() zu setzen?

z.B.

obj.setAttribute("maxlength", 3);

Hallo wollik

ich hab mal ein kurzes Beispiel geschrieben, welches funktioniert:

window.onload = function()
{
    var line = 01;
    var sel = document.createElement( 'SELECT' );
    sel.name = 'SEL_'+line;
    sel.size = '1';
    sel.tabindex ='1';
    sel.id ='aktiv';
    sel.onchange = function() { alert("SEL"+line+" -- "+this.selectedIndex); }
    // zweite Variante
    //sel.onchange = function() { selChanged("SEL",line,0); }
    for (var i=1; i<=10; i++)
    {
        var opt = document.createElement( 'OPTION' );
        opt.value = "val_"+i;
        opt.text = "val_"+i;
        sel.options.add(opt);
    }
    document.body.appendChild(sel); 
    
    function selChanged(a,b,c)
    {
        alert(a+"\n" +b+"\n"+c);
    }
}

Wegen einer guten Referenz was wo möglich ist kann ich Dir http://www.quirksmode.org/ empfehlen.

vg
Hannes

Probier mal onchange klein zu schreiben .. kannst einen Link zu Deinem Beispiel posten?

71

(5 Antworten, geschrieben in XML)

Ja, so natürlich auch ;o)

72

(5 Antworten, geschrieben in XML)

Meinst Du die Navigation links ? .. wenn man mit der Maus darüber streift, werden die Punkte optisch hervorgehoben. Das wäre dann simples JavaScript, also ein sog. Rollover-Effekt. Dabei wird einfach dyn. ein neuer Style zugewiesen und dann wieder entferent.

73

(2 Antworten, geschrieben in DHTML/DOM)

Hi,

das Problem liegt darin, dass in GEKO-Browsern jeder Zeilenumbruch und Leerzeichen zwischen den Elementen als eigener Textknoten (Type == 3, #text) interpretiert wird. Aus diesem Grund mußt Du daher zunächst den Elementbaum um diese "fehlerhaften" Knoten bereinigen. Ein verbesserter Code kann wie folgt aussehen:

var node;
var e;
var a;
var V0;
var V1;

document.write("<pre>\n");
for (var j=0;j<3;j++)
    {node = "Line_"+j;
    e      = document.getElementById(node);
    var a = e.childNodes.length;
     document.write("\n\nAnzahl der Kinderknoten in Zeile [Line_"+j+"] = <b>" + a + "<\/b>\n");
    for (i=0;i<a;i++)
        {
    if (e.childNodes[i].nodeType == 3) continue;
        V0 = e.childNodes[i].firstChild.nodeValue;
       V1 = e.childNodes[i].firstChild.nodeType;
       V2 = e.childNodes[i].firstChild.nodeName;
        document.write("["+node+"]  Knoten Nr.= <b> "+i+"<\/b>\tType: = <b>"+V1+"<\/b>\tName: = <b>"+V2+"<\/b>\tValue: = <b>"+V0+"<\/b>\n");
    }   }
document.write("</pre>");

node = "Line_2";

if (document.getElementById(node))
   {
   alert("D E L E T E  Ersten Kindknoten vom Objekt: "+node);
   
   tr = document.getElementById(node);
   for (i=0;i<tr.childNodes.length;i++)
        {
    if (tr.childNodes[i].nodeType == 3) tr.removeChild(tr.childNodes[i]);
   }
    tr.removeChild(document.getElementById(node).firstChild);
   }
else alert("Objekt: "+node+" nicht gefunden!");

Hoffe das hilft Dir weiter.

vg
Hannes

Ja, das geht. Schau Dir dazu doch mal beispielsweise das http://script.aculo.us/ Framework an.

75

(8 Antworten, geschrieben in HTML/XHTML)

Guck mal hier: http://www.firefox-browser.de/wiki/Lokale_Bilder