Ich entwickle gerade ein System für den internen Gebrauch in meinem Unternehmen, damit unser Service Desk Team Benutzerkonten entsperren/Passwörter zurücksetzen kann.Stop Seite aktualisieren auf Knopf klicken
Ich habe die PHP/POST-Funktionen dafür abgeschlossen und habe sie mit der .load-Funktion auf dem Dashboard meines Systems aufgenommen. Dies funktioniert und die betreffende Funktion ist LDAP-Konto entsperrt. Der Button wird angeklickt, das Postformular wird abgeschickt und es funktioniert alles. Allerdings wird die gesamte Seite beim Senden aktualisiert, obwohl sie über jQuery geladen wurde. Ich habe Mühe zu verstehen, warum dies passieren würde und wie ich es vermeiden kann, damit ich dem Endbenutzer erfolgreiche oder erfolglose Nachrichten auf Knopfdruck geben kann. Dies ist das Hauptziel und deshalb habe ich begonnen, JS-Ladefunktionen zu verwenden, da ich glaubte, dies würde mir erlauben, dies zu tun.
Ich bin völlig neu zu jQuery/JSON/JS und wenn diese Frage ist leicht beschreibend oder hat eine offensichtliche Antwort Entschuldigung.
EDIT:
So wie ich das Formular enthalten sind, als solche:
<div id="lockedout"></div>
<script>
$(document).ready(function(){
$("#lockedout").load('/modules/active-directory/includes/lockedout.php');
});
</script>
Und die enthalten Form ist:
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT']);
include ('/core/system/global.ldap.php');
$attributes = array("displayname", "mail", "samaccountname", "lockoutTime");
$filter = "(&(objectClass=User)(lockoutTime>=1)(title=*))";
$search = ldap_search($ldap_conn, $ldap_dn, $filter, $attributes) or die (ldap_error($ldap_conn));
$info = ldap_get_entries($ldap_conn, $search);
?>
<h4><i class="fa fa-lock"></i> Currently Locked Out (<?php echo $info["count"]; ?>)</h4>
<br>
<table class="table table-bordered">
<tbody><tr>
<th>Username</th>
<th>Unlock</th>
</tr>
<?php
for ($i=0; $i<$info["count"]; $i++) {
echo "<tr>";
echo "<td>" . $info[$i]["displayname"][0] . " (" . $info[$i]["samaccountname"][0] . ")</td>";
echo "</form><form method='post' action='/active-directory/' id='" . $info[$i]["samaccountname"][0] . "'></form>";
echo '<input type="hidden" name="dn" value="'. $info[$i]["dn"] .'" form="' . $info[$i]["samaccountname"][0] . '">';
echo "<td><center><button type='submit' id='unlock' name='unlock' class='btn btn-success btn-flat' form='" . $info[$i]["samaccountname"][0] . "'>Unlock </button></center></td>";
echo "</tr>";
}
?> </tbody></table>
Dieser Code über dem Armaturenbrett angebracht ist, wo ich mache den JSON-Import.
<?php
if(isset($_POST['unlock']))
{
$attr["lockoutTime"] = "0";
$userdn = $_POST['dn'];
$result = ldap_modify($ldap_conn, $userdn, $attr);
echo '<script>
$(document).ready(function(){
$("#lockedout").load("/modules/active-directory/includes/lockedout.php");
});
</script>';
}
?>
Diese Hilfe? https://api.jquery.com/event.preventdefault/ – Mike
Es klingt wie Sie 'preventDefault()' in einem Ihrer Event-Handler verwenden müssen. Leider haben Sie in Ihrer Frage keinen Code angezeigt, so dass Ihnen niemand mit Sicherheit helfen kann –
@RoryMcCrossan Entschuldigung, ich habe meinen obigen Code hinzugefügt. – Jack