Inhaltsänderung per Link ohne neuladen der Seite

Dieses Thema im Forum "Webentwicklung" wurde erstellt von King-Flo, 2. Oktober 2005 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 2. Oktober 2005
    Hallo

    ich arbeite an einer neuen Seite für mich und da möchte ich die Adminfunktion zum bearbeiten der Gästebucheinträge folgendermaßen einbinden.

    Wenn man als Admin angemeldet ist, erscheint bei jedem Gästebucheintrag ein zusätzlicher Link. Wenn man auf den Link klickt, wird der Code zum bearbeiten angezeigt (anstatt des Gb-Eintrags).
    Und das geschieht ohne neuladen der Seite.

    Soweit ich weiss muss ich Code 1 (Quelltext des Gästebucheintrags) in ein <div id="1">("1" ist ein Bsp.) und Code 2 (Quelltext zum bearbeiten des Eintrags) in ein zweites div (also <div id="admin_1">)speichern.

    Aber ich weiss nicht, wie ich das hinbekomme, da ich von Javascript so gut wie keine Ahnung habe.

    Ich hoffe jemand kann mir helfen.
     
  2. 2. Oktober 2005
    warum öffnest du nicht einfach ein kleines neues fenster z.b. in 500x300 und dort die ganzen admin funktionen mit text und so von dem posting? fänd das praktisch ;-).

    Mit Javascript hab ich aber auch keine Lösung parat :>
     
  3. 2. Oktober 2005
    ne ich würds lieber so machen wie beschrieben
     
  4. 2. Oktober 2005
    also wie gesagt ich würde halt 2 divs machen die folgendermassen heißen:

    "layer".$id."text" und "layer".$id."edit"

    eins mit dem text eins mit einer textarea die den selben inhalt hat

    das div mit der textarea-layer kriegt ein style="display: none" dadurch wird dieser bereich net angezeigt

    nun hasse ja deinen link

    <a onclick="show(layer'.$id.')">lala</A>

    nun zur funktion show

    Code:
    function show(id){
     if(document.getElementById("layer"+id+"text").style.display == 'none') {
     document.getElementById("layer"+id+"text").style.display = 'inline';
     document.getElementById("layer"+id+"edit").style.display = 'none';
     }
     else{
     document.getElementById("layer"+id+"text").style.display = 'none';
     document.getElementById("layer"+id+"edit").style.display = inline'; 
     }
    }
     

    du musst aber dem link immer per php die id übergeben

    denke es sollte so gehn wenn net liegt bestimmt irgendwo ein js fehler vor.... wie ich diese sprache hasse^^ naja aber sollte was werden wenn net sag bescheid dann gugg ich es mir genauer an
     
  5. 2. Oktober 2005
    damit bin ich leider noch nicht ganz zurechtgekommen.
    mein Code (erstmal als $id nur "1" - php wird später eingebunden. Die textarea hab ich auch erstmal weggelassen. Es soll also nur zwischen Text-Eins und Text-Eins-Edit gewechselt werden):
    Code:
    <html>
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    function show(id){
     if(document.getElementById("layer"+id+"text").style.display == 'none') {
     document.getElementById("layer"+id+"text").style.display = 'inline';
     document.getElementById("layer"+id+"edit").style.display = 'none';
     }
     else{
     document.getElementById("layer"+id+"text").style.display = 'none';
     document.getElementById("layer"+id+"edit").style.display = inline';
     }
    }
    -->
    </script>
    </head>
    
    <body>
    <div id="layer1text">
    text-Eins
    </div>
    
    <div id="layer1edit">
    Text-Eins-Edit
    </div>
    
    <a href="#" onclick="show(layer1)">lala</a>
    
    </body>
    </html>
    
    Bei mir sieht es nun aber folgendermaßen aus:
    Es werden beide divs angezeigt, und dadrunter der Link. Wenn ich auf den Link klicke passiert aber nichts
     
  6. 2. Oktober 2005
    Code:
    <html>
    <head>
    <script language="JavaScript">
    <!--
    function show(id){
     if(document.getElementById("layer"+id+"text").style.display == 'none') {
     document.getElementById("layer"+id+"text").style.display = 'block';
     document.getElementById("layer"+id+"edit").style.display = 'none';
     }
     else{
     document.getElementById("layer"+id+"text").style.display = 'none';
     document.getElementById("layer"+id+"edit").style.display = 'block';
     }
    }
    -->
    </script>
    </head>
    
    <body>
    <div id="layer1text" style="display:block">
    text-Eins
    </div>
    
    <div id="layer1edit" style="display:none">
    Text-Eins-Edit
    </div>
    
    <a href="#" onclick="show(1)">lala</a>
    
    </body>
    </html> 
    kleinigkeiten warens so sollte es gehn
     
  7. 2. Oktober 2005
    genau so meinte ich das.
    viiieeelleeen danke
    10 sind dann natürlich klar
     
  8. 2. Oktober 2005
    erledigt

    ~ closed ~
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.