2016-06-21 9 views
1

Ich habe nur eine einfache Frage. Ich habe mit dem Lernen von Javascript begonnen.JavaScript - Zurück zum vorherigen Wert?

Derzeit lernen die DOM-Sachen über HTML-Content-Manipulation.

Mein Problem ist so etwas wie dieses:

<?php 
    ob_start(); 
    session_start(); 
    include("db/config.php"); 

    mssql_select_db($dbName1, $dbConn); 
      $sq = mssql_query("SELECT TOP 1 * FROM LandingPage ORDER BY ID DESC"); 
    while($s = mssql_fetch_array($sq)) { 
     ?> 
      <nav id="overlay_box" class="overlay_box_style"> 
       <div id="overlay_inbound"> 
        <a href="#" id="latestEntryForm">Latest Entry</a> 
       </div> 

       <div id="overlay_outbound"> 
        <a href="#" id="msgContentForm">Leave A Message!</a> 
       </div> 
       <!-- javascript DOM injection @overlay_holder --> 
       <div id="overlay_holder" class="overlay_holder_style"> 
        <ul> 
         <li id="overlay_title"> 
          <p class="overlay_title_style">Latest Entry</p> 
          <p class="overlay_title_style">- <?=$s['Title']?></p><br> 
         </li> 
         <li id="overlay_content"> 
          <?=$s['Content'] = substr($s['Content'], 0, 200);?>... 
         </li> 
         <li id="overlay_date"> 
          </br>| <?=$s['Date'];?> |<br><?=$s['Author'];?> 
         </li> 
        </ul> 
       </div> 
      </nav> 

    <? } ?> 


<script type="text/javascript"> 
$("#msgContentForm").click(function() { 
    $("#overlay_holder").load("admin/msgContentForm.php"); 
    return false; 
}); 
</script> 

Wie kann ich dieses Problem lösen, ist es eine effiziente und optimierte ohne die zusätzliche „Arbeit um“ machen * .php-Datei? Vielen Dank im Voraus!

+0

Sie wollen also die beiden Dateien beim Klicken auf einzelne Schaltfläche wechseln? Komme ich es richtig? –

+0

Sie sagen "Mein Problem ist in etwa so", aber dann gibt es nur HTML-Code und eine vage Frage. Was ist das Problem? – apokryfos

Antwort

0

Es sieht so aus, als ob die erste Datei mit Ausnahme des Inhalts von latestEntryForm.php statisch ist. Lassen Sie die erste Datei die Seite neuntlyEntryForm.php anstelle des letzten Eintrags enthalten. Dann werden Sie Ihren PHP-Code nicht wiederholen.

+0

Nein, beachten Sie, dass die beiden Dateien dasselbe tun. op versucht dasselbe Ergebnis mit nur einer Datei zu erhalten. –

+0

Er möchte es effizient machen, ohne Dateien zu umgehen. Er hat an zwei Stellen denselben Code. Wenn er den Code von der ersten Stelle entfernte und ihn von der zweiten einfügte, dann wurde die zweite Datei essentiell, keine "Umgehung". Es ist eine richtige Aufschlüsselung der Bedenken. Er könnte alles in eine Datei schreiben, mit Blöcken, die nur das wiedergeben, was angefordert wird, aber das ist noch komplizierter und spaghettiartiger. –

1

Meine Idee ist es wie folgt aus:

Verwenden $ _GET [ "mode"] superglobalen Variable, und lassen Sie die Werte "local" und "ganz". Dieser wird verwendet, um zu bestimmen, ob Sie einen Teil des HTML oder des ganzen laden möchten.

Anschließend legen Bedingungen für die Ausgabe zu steuern, zum Beispiel:

if($_GET["mode"]=="local"){echo "bla bla bla";} 

Dann in der Ajax-URL, Änderung:

$("#overlay_holder").load("admin/latestEntryForm.php?mode=local"); 

Dann würden Sie brauchen nur eine Datei zu bearbeiten!

+0

Kreative Antwort! – Pogrindis

Verwandte Themen