单击按钮时停止页面刷新

时间:2016-07-05 09:30:44

标签: php jquery json post ldap

我目前正在开发一个供公司内部使用的系统,以便我们的服务台团队解锁用户帐户/重置密码。

我已经为此完成了PHP / POST功能,并将它们与我系统仪表板上的.load功能一起包含在内。这有效,有问题的功能是LDAP帐户解锁。点击按钮,提交帖子表格,一切正常。但是,即使通过jQuery加载,它也会在提交时刷新整个页面。我很难理解为什么会发生这种情况,以及如何避免这种情况,以便我可以在按钮点击时给最终用户成功或不成功的消息。这是主要目标,也是我开始使用JS加载函数的原因,因为我认为这样可以让我这样做。

我对jQuery / JSON / JS完全陌生,如果这个问题略有描述性或有明显的答案道歉。

编辑:

我包含表格的方式如下:

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

1 个答案:

答案 0 :(得分:0)

如果您要将内容提交到停止页面或验证用户但不重新加载整个页面,请使用AJAX。

如果您只想在单击按钮时显示某些警报或验证表单,请使用javascript或其衍生产品