Ajax ermöglicht es Ihnen, eine Anfrage auf eine andere Seite, ohne erfrischend zu senden. Überprüfen dieser Teil des jQuery Perform an asynchronous HTTP (Ajax) request
In Ihrem Fall, setzen Sie dieses auf (1., jQuery im Kopf Ihrer Seite enthalten):
<p class="reg-code">Hash: <span></span>
<i class="fa fa-refresh" aria-hidden="true" id="refresh-code"></i></p>
Beachten Sie, dass die < span> Das wird die Antwort ist leer (aber kann den ursprünglichen Hash am Anfang zeigen. Sein Inhalt wird trotzdem ersetzt, wenn Sie auf den Link klicken), wenn wir starten und dass eine ID mit der Refresh-Link verbunden istDann Sie jQuery verwenden:
$(document).ready(function() {
$("#refresh-code").click(function(){ // click on element with ID 'refresh-code'
$.ajax({ // method default is 'GET'
url: "hash.exe.php", // the PHP page that will generate new hash
success: function(html){ // if no PHP error 'html' is the response
$(".reg-code > span").html(html); // we append the html in the span
},
error: function (request, status, error) { // we handle error
alert(request.responseText);
}
});
});
});
PHP (hash.exe.php) wird wie folgt aussehen (links Sie verarbeiten, wie sie ist, hinzugefügt, um die echo'd Antwort):
<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
$num = rand(0, 10000);
$hash = password_hash($num, PASSWORD_BCRYPT, array(
'cost' => 6
));
echo"$hash"; // this 'invisible' HTML output is echo'd back to the page who initiated it
?>
Beispiel zusammensetzen FIDDLE
Sie müssten dies tun in Javascript, als php nur einmal ausgeführt wird, wenn Sie die Webseite – Deckerz
aktualisieren möchten enthalten sollte, finde ich es lächerlich Erstelle eine [neue Frage] (https://stackoverflow.com/questions/44037952/clicking-ai-tag-to-generate-a-new-hash-wont-work) basierend auf meiner Antwort, ohne auch nur die Mühe zu machen. Sie hätten stattdessen kommentieren können, um eine aktualisierte Antwort zu erhalten. – Xorifelse