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