2017-04-25 5 views
0

aktualisieren Ich möchte meine header konsequent mit frischen Werten von meinem database aktualisiert werden.PHP/MySQL/AJAX - Abfrage Werte mit AJAX

es zu erreichen, ich habe eine AJAX post-Methode erstellt:

AJAX (bearbeitet):

$(document).ready(function() { 
    function update() { 
    $.ajax({ 
    type: "POST", 
    url: "indextopgame.php", 
    data: { id: "<?=$_SESSION['user']['id']?>"}, 
    success: function(data) { 
     $(".full-wrapper").html(data); 
    } 
}); 
     } 

    setInterval(update, 5000); 
}); 

Es $_SESSION['user']['id']-indextopgame.php alle 10 Sekunden vergehen soll.

indextopgame.php sieht wie folgt aus:

PHP PART (bearbeitet):

<?php 

session_start(); 

$con = new mysqli("localhost","d0man94_eworld","own3d123","d0man94_eworld"); 

function sql_safe($s) 
{ 
    if (get_magic_quotes_gpc()) 
     $s = stripslashes($s); 
    global $con; 
    return mysqli_real_escape_string($con, $s); 
} 

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $id = trim(sql_safe($_POST['id'])); 

    $data = "SELECT username, email, user_role, fbid, googleid, fname, lname, avatar, energy, energymax, health, healthmax, fame, edollar, etoken, companies, workid, city, function FROM members WHERE id = $id"; 
    $result = mysqli_query($con, $data); 

    if (mysqli_num_rows($result) > 0) { 
     while($row = mysqli_fetch_assoc($result)) { 

      $_SESSION['user']['user_role'] = $row["id"]; 
      $_SESSION['user']['fbid'] = $row['fbid']; 
      $_SESSION['user']['googleid'] = $row['googleid']; 
      $_SESSION['user']['created'] = $row['created']; 
      $_SESSION['user']['lastlogin'] = $row['lastlogin']; 
      $_SESSION['user']['username'] = $row['username']; 
      $_SESSION['user']['fname'] = $row['fname']; 
      $_SESSION['user']['lname'] = $row['lname']; 
      $_SESSION['user']['email'] = $row['email']; 
      $_SESSION['user']['avatar'] = $row['avatar']; 
      $_SESSION['user']['energy'] = $row['energy']; 
      $_SESSION['user']['energymax'] = $row['energymax']; 
      $_SESSION['user']['health'] = $row['health']; 
      $_SESSION['user']['healthmax'] = $row['healthmax']; 
      $_SESSION['user']['fame'] = $row['fame']; 
      $_SESSION['user']['edollar'] = $row['edollar']; 
      $_SESSION['user']['etoken'] = $row['etoken']; 
      $_SESSION['user']['companies'] = $row['companies']; 
      $_SESSION['user']['workid'] = $row['workid']; 
      $_SESSION['user']['city'] = $row['city']; 
      $_SESSION['user']['function'] = $row['function']; 
     } 

      echo $_SESSION['user']['energy']; 
    } 
} 
?> 

Noch würde dies nicht den Header aktualisieren mit Werten ich will, sondern es macht nur der Kopf verschwinden. Was ist mit diesem Code falsch? Vielleicht gibt es andere, effektivere Methoden, um Werte von MySQL zu aktualisieren?

EDIT:

ich die AJAX/PHP Codebeispiele bearbeitet haben - es ist wie das funktioniert! Aber wie kann ich all diese Variablen wiedergeben? Wiederholtes Echo scheint erneut Fehler zu verursachen, da Werte aus meinem Header verschwinden.

EDIT2:

gelöst, machte ich einen dummen Fehler mit Syntax ... Danke an alle für den Beitrag!

+0

Wenn Sie die Daten var erfolgreich exportieren, erhalten Sie die richtigen Daten? – VikingCode

+0

@Akin tatsächlich macht meine Header verschwinden Rofl –

+1

Warum senden Sie die Session-Variable hin und her? Es befindet sich bereits auf dem Server, daher gibt es keinen Grund, es an den Client und zurück an den Server zu senden. – jeroen

Antwort

1

Sie sind die Daten nicht verwenden, die vom Server in Ihrem Ajax-Aufruf gesendet wird:

success: function() { 
     $(".full-wrapper").html(data); 
    } 
}); 

Sollten sein:

success: function(data) { 
        ^^^^ the returned data 
     $(".full-wrapper").html(data); 
    } 
}); 

Sie sollten auch prüfen, ob Ihr PHP-Skript aus tatsächlich Echo etwas Nützliches.

+1

toll, ich bin halbwegs dabei, diese Arbeit zu machen , jetzt erscheinen nur die php-daten nicht, was bedeutet, dass ich am php-teil arbeiten muss. Danke Jeroen! –

1

data Optionen im Erfolgsmethode fehlt

success: function(data) {      
    $(".full-wrapper").html(data); 
} 

Auch sollten Sie, dass der Inhalt in PHP-Datei Echo haben, auf die Sie in der Kopfzeile angezeigt werden soll.