2016-05-04 16 views
0

Also arbeite ich an einer Website, die Credits beinhaltet. Ich recherchiere jetzt seit ungefähr 30 Minuten im Internet und versuche eine Lösung für das Aktualisieren von Credits zu finden. Mit dem Aktualisieren von Credits meine ich das.Aktualisieren von 'Credits' mit PHP und JavaScript

Die Webseite lädt Credits von der MySQL-Datenbank, der Spieler verwendet dann einen Teil von einigen Credits (Bedenken Sie, dass ich sie einmal abgezogen habe), aber sie werden nicht aktualisiert, wenn sie subtrahiert werden.

Also habe ich eine JavaScript-Methode verwendet, die die Kredite auf eine LI in HTML setzt. Ich benutze PHP innerhalb des JavaScript-Codes. ABER, es ruft eine Menge an Credits ab, aber es ist nicht die Aktualisierungsmenge der Credits. Es ist das vorherige oder es bleibt auf dem vorherigen Betrag von Krediten eingefroren.

So, hier ist der Code, Sie werden die meisten wissen müssen:

Diese angeblich 'Updates' die LI mit JavaScript und PHP:

function finalL(){ 
document.getElementById("updatecredits").innerHTML = "credits: " + 
<?php 

$db = mysqli_connect('localhost', 'root', 'iGenX772', 'userdata'); 

$query = mysqli_fetch_array(mysqli_query($db, "SELECT credits FROM users   WHERE username='" . mysqli_real_escape_string($db, $_SESSION['user'] ['username']) . "'")); 
echo $query['credits']; 

mysqli_close($db); 
?>; 
} 

Zuerst aufgerufen, wenn die PHP-Seite geladen wird:

Ich aktiviere die Funktion durch einen anderen Teil, der wahrscheinlich für eine Verwendung für dieses Problem unnötig ist. ABER ich subtrahiere die Credits, BEVOR diese Funktion aufgerufen wird.

Ich verwende die gleiche Methode in der Funktion wie ich in der Liste. Wenn jemand eine Lösung für dieses Problem hat, würde ich es lieben!

~ mrgreen33gamer | Joshua

EXTRA:

<div id="logreg"> 
<ul> 
<li><a>Welcome, <?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?></a></li> 
<li><a><span id="updatecredits">Credits: 
<?php 

$db = mysqli_connect('localhost', 'root', 'iGenX772', 'userdata'); 

$query = mysqli_fetch_array(mysqli_query($db, "SELECT credits FROM users WHERE username='" . mysqli_real_escape_string($db, $_SESSION['user']['username']) . "'")); 
echo $query['credits']; 

mysqli_close($db); 

?></span></a></li> 
<li><a href="logout.php">Logout</a></li> 
</ul> 
</div> 

Antwort

0

sollten Sie rufen die PHP Ajax und setzen Sie den PHP-Code in eine separate Datei. In diesem Fall gehe ich davon aus dem PHP-Code in loadCredits.php

Javascript ist

<script type="text/javascript"> 
function finalL(){   
    xhttp= new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     document.getElementById("updatecredits").innerHTML = "Credits: " + xhttp.responseText; 
    } 
    }; 
    xhttp.open("GET", "loadCredits.php?t=" + Math.random(), true); 
    xhttp.send(); 
} 
</script> 

PHP

<?php 
echo (5); 
?> 

HTML

<ul> 
<li><a>Welcome, </a></li> 
<li><a><span id="updatecredits" onClick="finalL()">Credits: 
</span></a></li> 
<li><a href="logout.php">Logout</a></li> 
</ul> 
+0

Okay, so ersetzen ich die Funktion mit Ihrem aktuellen einmal . Ich bekomme einen riesigen Fehler in der Konsole sagen, dass das '$' vor '.ajar ({' ist nicht definiert .... –

+0

So verwenden Sie nicht jQuery. Ich habe den Code aktualisiert. – Gerard

+0

Eigentlich zeigt es nicht die Kredite überhaupt ... –

Verwandte Themen