JavaScript Bischen etwas komplexeres...

rony

Commodore Pro
🎅Rätsel-Elite ’10
Registriert
Jan. 2007
Beiträge
4.979
Moin,

also, ich habe einen kleine Seite gebaut welche Zitate nach dem Zufallsprinzip anzeigt.

http://zitate.codename7.de/

Nun, habe die Seite gebaut um etwas Nähe zu PHP aufzubauen.

Funktioniert auch so alles sehr gut, nur wollte ich die Zitate verlinkbar machen.

http://zitate.codename7.de/?zitat=3

das geht auch, jedoch wird dann kein neues Zitat aus der Datenbank geholt, und wird auch keine neue URL generiert.

Ich hoffe bis hierhin ist klar was ich meine ^^

Ein Kumpel sagte mir, dass es mittels JavaScript möglich sei, jedoch habe ich überhaupt keine Ahnung von JavaScript.

Kann mir da Jemand unter die Arme greifen, bzw. hat schon ein paar Codeschnippsel parat?

Hier mein Quellcode:

HTML:
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
<html xmlns=http://www.w3.org/1999/xhtml xml:lang=en>
<head>
      <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1 />

      <title>Filmzitate</title>


      <style type=text/css>
         <!--
         #center
         {
            position: absolute;
            top: 40%;
            width: 100%;
            text-align: center;
         }
         
         #content
         {
            position: absolute;
            width: 100%;
            font:italic 40px BOOKOSI;
            color:#666;
         }
           
          #info
         {
            position: absolute;
            vertical-align: center;
            padding: 10px;
            width: 100%;   
            font:italic 20px Verdana;
            color:#333;
         }
         #button
         {
         position: absolute;
         right:5px;
         bottom:5px;
         }
         #schicken
         {
         position: absolute;
         left 9px;
         bottom: 9px;
         color: 333;
         font: 16px Verdana;
         }
         a:link {color:333; text-decoration:underline; }
         a:visited {color:333; text-decoration:underline; }
         a:focus {color:333; text-decoration:underline; }
         a:hover {color:333; text-decoration:underline; }
         a:active {color:333; text-decoration:underline; }

         -->
      </style>
   </head>
   <body style="overflow:hidden;">
   <div id=center>
         <div id=content>
         
         <?php        
         

         
  mysql_connect(xxxxx) or die
    ("Verbindung zum Server fehlgeschlagen.");
  mysql_select_db(xxxxx) or die
    ("Die Datenbank ist nicht erreichbar.");

     session_start();
     $test = $_GET['zitat'];
    if ($test != 0) {
        $zitat = mysql_query("SELECT zitat, name, film FROM tabelle WHERE id = $test"); }
     else
     { $zitat = mysql_query("SELECT zitat, name, film FROM tabelle WHERE id != '".$_SESSION["alt"]."' ORDER BY RAND() LIMIT 0,1");
     }
    $_SESSION["alt"] = $id;
    
while($rzit = mysql_fetch_object($zitat))
  {
         echo "&bdquo;";
             echo $rzit->zitat;   
             echo "&rdquo;";
            echo   "<div id=info>";
            echo $rzit->name;
            echo "<font color=\"#999\" size=\"-1\"> &ndash; ";
            echo $rzit->film;
            echo "</font>"; 
        }
?>        
        </div>
         </div>
      </div>
      
 <div id=button>
<form method="post">
<input type="button" value="Neues Zitat"
onclick="window.location.reload()"></input>
</form>
</div>
<div id=schicken>
<a href="mailto:rony@codename7.de?subject=Zitatseite">Zitat zuschicken/verbessern.</a></div>
</body>
</html>
 
Zuletzt bearbeitet:
das ganze hat mit javascript nichts zu tun.

dein "then"-zweig scheint einfach falsch zu sein. im else-zweig benutzt du einfache anführungszeichen für die id, im then zweig nicht

PS: wenn das original code ist (also nicht extra für CB aufbereitet wurde), dann solltest du dich am besten noch mehr mit html/css und codestrukturierung befassen.
 
Zuletzt bearbeitet:
ich habe mich glaub ich falsch ausgedrückt ^^

also es soll zu jedem Zitat einen URL generiert werden, damit man diese kopieren kann und z.b. anderen schicken kann - der sieht dann das zitat. Wenn er dann auf den button "Neues Zitat" klickt wird ein neues zitat aus der Datenbank geholt, und zu diesem die URL generiert, damit man auch dieses wieder verschicken kann.

Das mit der Session hab ich gemacht, damit man nicht zweimal das selbe zitat auf dem Bildschirm erscheint.

Aber ich muss sagen, dass ich nicht wirklich verstehe was du meinst ^^ - Ich bin in allen belangen dort noch absoluter leihe - bitte etwas ausführlicher erklären - teilweise hat mir auch ein kumepl geholfen - deswegen kann ich nicht jedes zeichen erklären :(
 
Das ist aber nicht der Code, wie er aktuell auf dem Webserver liegt, oder?
Dann gäbe es für mich unerklärliches verhalten.

Paar anmerkungen zum hier geposteten:
Wer garantiert dir, dass $_GET['zitat'] vom typ int ist? Was soll die Prüfung auf != 0?
Dann schon die angesprochenen Anführungszeichen bei der Where-Bedingung im then-Fall. Vergleich den Where Teil einfach mal mit dem aus dem else-Fall. Hat schon eine andere Struktur.
Dann gibt es noch ein $_SESSION["alt"] = $id; aber wer oder was is denn $id? Wurde die irgendwo definiert?

Benötigt wird zum einen das vergessen der $_GET und ein ändern der URL beim Reload. Das mit der URL könnte wie hier beschrieben funktionieren:
http://www.php-resource.de/forum/ht...-link-aendern-ohne-seitenreload-facebook.html
Da die URL nicht neu aufgerufen wird könnte evtl ein unset($_GET) helfen.
 
Zuletzt bearbeitet:
mir ist schon klar, was das ganze soll. ich versuchs mal anders:

im thenzweig hast du sql
Code:
SELECT zitat, name, film FROM tabelle WHERE id = 1
und im elsezweig
Code:
SELECT zitat, name, film FROM tabelle WHERE id = [COLOR="Red"]'[/COLOR]1[COLOR="Red"]'[/COLOR]

im zweiten fall ist die 1 ein text/string, im ersten eine zahl/int. das macht einen unterschied, weil 1 != '1'
 
Zurück
Oben