Php 是否可以在不向div加载页面的情况下刷新div?

Php 是否可以在不向div加载页面的情况下刷新div?,php,jquery,html,refresh,Php,Jquery,Html,Refresh,解决了-有点--- window.location.reload();在我的代码中,我有提交按钮关闭div,工作了 // Collapse Panel on submit $("div#panel").on('submit', function() { window.location.reload(); $("div#panel").slideUp("slow"); $("#toggle a").toggle(); return false; }); 我一直在寻找这个答案,每次我都感到更加沮

解决了-有点---

window.location.reload();在我的代码中,我有提交按钮关闭div,工作了

// Collapse Panel on submit
$("div#panel").on('submit', function() {
window.location.reload();
$("div#panel").slideUp("slow");
$("#toggle a").toggle();

return false;
});
我一直在寻找这个答案,每次我都感到更加沮丧

情景:

  • 我有一个用于登录的div(jquery、css)

  • 该div中的登录表单本身最初是用PHP动态创建的(通过基于会话中的值的if-else语句-PHP echo加载表单)

  • 3.如果我输入正确的登录名并单击submit,我将关闭div(jquery on(submit)),以便用户可以看到页面。该页面使用xajax/php函数从php文件加载动态内容

    4.问题-如果我单击重新打开div,它仍然显示我的登录表单(因为页面没有重新加载)。但是我用xajax/PHP完成的页面navbar会重新加载,以显示正确的菜单函数

  • 我的问题是,我希望div在提交后刷新,或者在任何有帮助的事件更改时刷新,以便它看到新的会话数据并相应地进行调整。我不想将另一个HTML页面加载到DIV中,因此LOAD(whatever.HTML)不是我想要的

  • 如果我在登录后使用f5刷新整个页面,并下拉div,登录表单将不在那里,因为我的会话现在表明我是一个登录用户,不再是需要登录的来宾。div不仅仅用于登录,它还包含其他链接和快捷方式,因此在您整个访问过程中登录时都会使用它

    index.php

    <div id="left" class="left">
    
             <?php      if(isset($_SESSION['admin'])){
            if($_SESSION["admin"] == "1") {
                echo "YOU ARE LOGGED IN AS AN ADMIN";
            }
        }
    
        if(isset($_SESSION['userID'])){
            echo "YOU ARE LOGGED IN AS A USER";
        }
    
        else { echo  '<form class="clearfix" id="loginForm" name="loginForm" action="javascript:void(null)" onsubmit="xajax_login(xajax.getFormValues(\'loginForm\'));">'; 
    

    即使使用纯JavaScript,这也很容易实现,不需要jQuery

    只需创建一个JS函数来重置表单或div中的输入字段,并在每次需要“刷新”div或表单的内容时调用它


    如果您粘贴div定义,我们可以给您提供更具体的建议,并附带实际执行此操作的JS代码。

    好吧,如果您在页面加载时将值加载到表单中,那么当表单通过ajax提交时,它们就会在表单中。您真正需要做的是在div一开始“关闭”时清除表单值

    $(#formselector).on('submit',function(){
        //your ajax login and page load code
    
       //then:
       $('#formselector').find('input').attr('value','');
    
    });    
    
    更新 根据您的评论,您真正需要做的是在弹出表单之前检查用户是否真正登录。有一些技巧可以做到这一点,但我建议您在表单提交到的php脚本中,在处理登录之前,检查
    $\u COOKIE
    变量以查看用户是否被识别。这还需要修改您的登录脚本,以确保它将用户数据存储在
    $\u COOKIE
    中,类似于它在
    &\u会话
    变量中存储数据的方式


    此时,您的php脚本将根据用户状态提供两种不同的响应,启动表单下拉列表的javascript代码将在显示登录表单之前检查是否得到“用户未找到”响应。

    要刷新特定div的内容,请使用以下命令:

    $(“#abc”).load(location.href+“#abc>*”,“”)


    其中#abc是div的目标位置。

    您想让div加载什么?我不明白您在登录后是否会“单击以重新打开div”。div当前有一个登录表单、注册表单,并且将有一个站点的快速搜索表单。。。因此,我希望它可以用于隐藏快速访问的内容,如果我无法获取此信息,那么我会在您登录后将其锁定。div是通过会话加载的,这意味着如果我在登录后重新刷新页面,登录表单将被对登录的人有用的内容替换,但是所有的数据都在主页的if-else语句中,所以如果我是一个用户并且登录了,并且打开面板,它就不会显示登录表单。我只是需要它刷新后,我登录,以便发生。。。我真的不想让它刷新整个页面,但如果必须的话,我会的。好的,你可以使用jquery来填充div,无论是否使用ajax,jquery可以触发的任何事件都会清空表单中的值。我关心的不是值是否仍然存在,而是表单是否仍然存在……如果您想“刷新”页面,这就是它的初始状态,那么表单仍然存在。如果该div中只有表单,而您不想要表单,那么为什么您首先担心重新打开该div?如果我在登录后使用f5刷新整个页面,并下拉该div,则登录表单将不存在,因为我的会话现在声明我是一个已登录的用户,而不再是需要登录的来宾。div不仅仅用于登录,它还包含其他链接和快捷方式,因此在您整个访问过程中登录时都会使用它//从DOM altogeather中删除?啊。这是埃弗里与你所描述的不同的问题,你可能想考虑一下你的问题的简单解释。如果你这样做,我会帮助你。我正在尝试找出哪些代码最能帮助你们,给我一分钟,我看看我能做什么。好的,这是基本的。。。表单位于我的php页面中,js页面制作div幻灯片,表单根据您是否登录而加载,表单调用php函数来检查所有加载和所有这些
    $(#formselector).on('submit',function(){
        //your ajax login and page load code
    
       //then:
       $('#formselector').find('input').attr('value','');
    
    });