2016-07-23 12 views
0

Ich habe ein Problem mit einer Funktion, die ich gerade erstellt habe. Ich versuche, mit einem bestimmten Benutzer auf einer Tabelle automatisch zu scrollen. Wenn ich meine Schaltfläche wähle, scrollt es zum Benutzer, lädt dann aber die vorherige Seite neu.Warum AutoScroll zur vorherigen Seite umleiten

Sie würden zu xxx.com gehen und dann ein Menü auswählen, das zu xxx.com/results_page.php führt. Von hier aus wählen Sie einen anderen Link, der Sie zu xxx.com/results.php führt. Von hier aus wählen Sie die Autoscroll-Schaltfläche. Mit der Schaltfläche gelangen Sie an die richtige Stelle auf der Seite und laden Sie dann erneut in die Datei xxx.com/results_page.php.

Ich kopierte dieses Skript von einem Freund, also bin ich nicht ganz sicher, wie es funktioniert. Das ist mein Knopf, ich habe ihn momentan deaktiviert, da er kaputt ist.

<tr> 
    <td colspan=2> 
     <button onclick="findUser()" title="Sorry, I'm still working on this." disabled>My Entry</button> 
    </td> 
</tr> 

Dies ist die Funktion oben auf der Seite.

<script type="text/javascript"> 
function findUser(){ 
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top); 
} 
</script> 

Lassen Sie mich wissen, was ich sonst noch hier geben kann. Ich kann bei Bedarf eine Testseite einrichten.

Testing Seite Testing.daqspickem.com Anmelden: Gast Pass: Gast

Nach der Anmeldung zu testing.daqspickem.com/results.php gehen. Die Schaltfläche befindet sich auf dieser Seite. The results page The results pages

Dieser Code ist, wo ich die TD gesetzt, die ich finden wollen.

switch ($user_names_display) 
    { 
      case 1: 
        echo '  <td>' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '</td>' . "\n"; 
        break; 
      case 2: 
        echo ' <td><img src="images/logos/' . trim($tmpUser->template_name) . '.gif" style="opacity: .8; width: 40px; height: 40px; margin-left: 0px; z-index: -1;" />' . trim($tmpUser->userName) . '</td>' . "\n"; 
        break; 
      default: //3 
        echo ' <td><img src="images/logos/' . trim($tmpUser->template_name) . '.svg" style="width="15px" height="15px" /><abbrev title="' . trim($tmpUser->userName) . '&#10;' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '">' . substr($tmpUser->userName, 0, 17) . '</abbrev> 
</td>' . "\n"; 
        break; 
    } 
+0

Das Testseite auf jeden Fall benötigt würden. Der Zweck Ihres Scripts ist nicht klar genug. Sie können auch eine js-Geige einrichten. Danke – vbrmnd

+0

Ich sagte dir den Zweck in der Beschreibung. Ich versuche, automatisch zu einem bestimmten Benutzer zu scrollen (" '): Last") für eine Tabelle. Ich möchte auf die Schaltfläche klicken und durch die Tabelle zu diesem Datensatz scrollen. – Daquiri

+0

Bearbeiteter Originalbeitrag mit Testseite. – Daquiri

Antwort

0

Try this:

function findUser(e){ 
    e.preventDefault(); 
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top); 
} 

Dies funktioniert, weil es die href von der Ausführung verhindert ist es Standardfunktionalität.

+0

Das gleiche Problem, obwohl ich das Problem gefunden haben könnte. Als ich meinen Tisch ansah, zeigte er stattdessen den Nutzernamen an. Erstens: Last, also könnte es sein, dass er den Datensatz nicht findet. Würde das dazu führen, dass es neu lädt? – Daquiri

0

I Raten Sie das Problem mit diesem Skript ist,

<script type="text/javascript"> 
function findUser(){ 
    $(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top); 
} 
</script> 

hier Ihre $_SESSION['loggedInUser'] enthält "Guest" während die td Sie hat innere HTML beziehen, werden "guest"

Diese Änderung würde es beheben, aber Sie werden müssen einen Fallback entwerfen, um solche Situationen zu behandeln, in denen der Benutzer nicht in der Tabelle vorhanden ist.

+0

Sie haben mich hier verloren, Sie haben gerade den gleichen Code gepostet, mit dem ich angefangen habe? Wie repariere ich es? – Daquiri

0

Ich habe ein Formular um meine Schaltfläche hinzugefügt und es scheint das Problem behoben zu haben. Ich wäre jedoch für alle anderen Ideen offen, da das nicht ideal erscheint. Es scheint, Chrome ist das Problem mit der Aktualisierung.

 <form id="frmData" onsubmit="return false"> 
    <tr><td colspan = 2 > <button onclick="findUser()" title="Sorry, I'm still working on this." >My Entry</button></td> </tr></table> 
</form> 

Skript

<script type="text/javascript"> 
function findUser() 
{ 
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top); 

} 
</script> 
Verwandte Themen