Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止php表单提交上的页面刷新?_Php_Javascript_Forms_Refresh_Submit - Fatal编程技术网

阻止php表单提交上的页面刷新?

阻止php表单提交上的页面刷新?,php,javascript,forms,refresh,submit,Php,Javascript,Forms,Refresh,Submit,我有一页(http://qccr.dyndns.org:82/on-广播时间表)在这里,访问者可以单击一周中的某一天,并显示我们电台当天的时间表。唯一的问题是发生这种情况时页面会完全刷新;如果只更改页面中心的日程安排,而不是更改整个页面,会更好。我对javascript知之甚少……有没有简单的方法可以做到这一点 相关代码如下(我认为): 在您调用的任何javascript函数中,执行返回false以防止默认行为 <a onclick="dothis();

我有一页(http://qccr.dyndns.org:82/on-广播时间表)在这里,访问者可以单击一周中的某一天,并显示我们电台当天的时间表。唯一的问题是发生这种情况时页面会完全刷新;如果只更改页面中心的日程安排,而不是更改整个页面,会更好。我对javascript知之甚少……有没有简单的方法可以做到这一点

相关代码如下(我认为):



在您调用的任何javascript函数中,执行
返回false以防止默认行为

<a onclick="dothis(); return false;" href="#">Click Me</a>

-或-


函数dothis(){/*stuff here*/return false;}

学习一些javascript基础知识,你会得到很好的服务:)

我对PHP了解不多,所以对此持保留态度

默认情况下,HTML表单不会在提交时刷新页面。某种东西(我猜是PHP)导致生成HTML表单,从而在表单提交时刷新页面

我不确定Barry的答案是否有效,但如果您想尝试一下,请用以下代码替换Monday li的代码:

使用您的格式设置

<?php if($currentday=="Monday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>'; document.getElementById('ddateform').submit(); return false;">Monday</a></li>
<?php endif; ?>
<script type="text/javascript">
    function onMondayClick(event) {
        document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>';
        document.getElementById('ddateform').submit();
        return false;
    }
</script>

<?php if($currentday=="Monday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick=onMondayClick>Monday</a></li>
<?php endif; ?>

  • 格式合理

    <?php if($currentday=="Monday") : ; ?>
        <li class="currentday"><?php echo $currentday; ?></li>
        <?php else : ?>
        <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>'; document.getElementById('ddateform').submit(); return false;">Monday</a></li>
    <?php endif; ?>
    
    <script type="text/javascript">
        function onMondayClick(event) {
            document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>';
            document.getElementById('ddateform').submit();
            return false;
        }
    </script>
    
    <?php if($currentday=="Monday") : ; ?>
        <li class="currentday"><?php echo $currentday; ?></li>
        <?php else : ?>
        <li><a href="#" onclick=onMondayClick>Monday</a></li>
    <?php endif; ?>
    
    
    onMondayClick函数(事件){
    document.getElementById('ddate')。值=“”;
    document.getElementById('ddateform').submit();
    返回false;
    }
    

  • 您可以使用jquery post函数和/或通过ajax调用发布表单数据来实现这一点

    您可以使用多种方法之一——您可以在
    表单
    标记上使用
    onsubmit
    属性,或者在
    输入
    标记上,使用
    onclick
    或类似的方法。因此,例如:
  • 我应该在后面加上“return:false;”,像这样吗
  • 如果是这样,我只是尝试了一下,但没有成功。你现在做的真的很不传统,很落后。如果您提交的表单是主页的一部分,它将提交整个页面。注意,添加行返回false;在回调函数的末尾,调用方法event.preventDefault()和event.stopPropagation(),event是自动传递给回调函数的第一个参数。然后,您应该弄清楚为什么html表单是使用提交时自动刷新页面的非默认选项生成的。一旦获得了这些,您就可以使用PHP或Javascript ajax调用从服务器获取数据,然后使用Javascript修改页面以反映新数据。