2016-07-05 4 views
-3

В настоящее время я разрабатываю систему для внутреннего использования внутри своей компании, чтобы наша служба поддержки могла разблокировать учетные записи пользователей/сбросить пароли.Остановить обновление страницы при нажатии кнопки

Я выполнил для этого функции PHP/POST и включил их с помощью функции .load на панели управления моей системы. Это работает, и функция, о которой идет речь, - это разблокировка учетной записи LDAP. Нажимается кнопка, отправляется почтовая форма, и все работает отлично. Однако он обновляет всю страницу при ее отправке, даже если ее загружают через jQuery. Я пытаюсь понять, почему это произойдет, и как я могу избежать этого, чтобы я мог дать успешным или неудачным сообщениям конечного пользователя при нажатии кнопки. Это основная цель, и именно поэтому я начал использовать функции загрузки JS, поскольку я полагал, что это позволит мне это сделать.

Я совершенно не знаком с jQuery/JSON/JS, и если этот вопрос немного очерчен или имеет очевидный ответ извинения.

EDIT:

Путь я включил форма как таковая:

<div id="lockedout"></div> 
<script> 
$(document).ready(function(){ 
$("#lockedout").load('/modules/active-directory/includes/lockedout.php'); 
}); 
</script> 

Входящая форма:

<?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> &nbsp;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] . "&nbsp;(" . $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> 

Этот код прилагается выше приборной панели, где я «Я делаю импорт JSON.

<?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>'; 
} 
?> 
+0

Эта помощь? https://api.jquery.com/event.preventdefault/ – Mike

+0

Похоже, вам нужно использовать 'preventDefault()' в одном из ваших обработчиков событий. К сожалению, вы не указали какой-либо код в своем вопросе, поэтому никто не может вам помочь с какой-либо определенностью. –

+0

@RoryMcCrossan Извинения, я добавил свой код выше. – Jack

ответ

0

Если вы хотите отправить контент на страницу назад или подтвердить пользователей, но не перезагружать всю страницу, используйте AJAX.

, если вы хотите, чтобы просто показать некоторые предупреждения или проверки формы при нажатии на кнопку использовать Javascript или его производные

Смежные вопросы