我正在尝试在表单提交上刷新 wordpress 中的 sidebar.php(即在 sidebar.php 上的小部件中)。
我的页面上有视频,如果整个页面刷新,视频必须从头开始播放。
当有人提交表单时,我需要一个解决方案来简单地刷新 sidebar.php ...我不是专家 php 程序员,所以简单是最好的!
顺便提一句。我正在为表单使用强大的插件。
提前致谢!
听起来像是 ajax 的工作!
现在,您可以从头开始,但这会带来不必要的痛苦。相反,我建议通过将其添加到您的标题中来将 jquery 包含到您的页面中
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
(使用最新版本,托管在 google 上)
现在您已经加载了 jquery,有许多简单的方法可以在不中断数据流的情况下提交数据。这是我的做法(我假设您使用的是 method="post"):
<input type="submit" >
为<button>
,因此单击它不会触发内置表单提交(这会中断您的视频)。<button id="mysubmitbutton">
. (当您使用它时,如果您还没有为您关心的所有表单字段提供 id 属性,那么您也可以轻松地引用它们,例如<input type="text" name="firstName" id="firstName">
而不是 just <input type="text" name="firstName">
)<head>
您的网站部分中,添加一些如下所示的代码:<script type="text/javascript">
//makes it so that it goes after the html document is ready for it
$(document).ready(function() {
//this ties a onclick event to your button you made
$("#mysubmitbutton").click(function(){
//when the button is clicked, it will asychronously post to where you want it to
$.post("urlthatwasinyouractionequalsattribute.php",
{
//put all your post variables here, referencing the ids you made earlier
firstName: $("#firstName").val(),
time: $("#time").val() //be sure you don't have a trailing comma on the last one
},
function(data) {
//data is whatever the other website sends back. do whatever you want here...
alert("Result: " + data);
});
});
});
</script>
启动它,它应该可以工作。显然,您将需要更改值以使其与您的表单等匹配。
希望有帮助!如果有,请标记为答案。