0

我正在尝试在表单提交上刷新 wordpress 中的 sidebar.php(即在 sidebar.php 上的小部件中)。

我的页面上有视频,如果整个页面刷新,视频必须从头开始播放。

当有人提交表单时,我需要一个解决方案来简单地刷新 sidebar.php ...我不是专家 php 程序员,所以简单是最好的!

顺便提一句。我正在为表单使用强大的插件。

提前致谢!

4

1 回答 1

0

听起来像是 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"):

  1. 将您的更改<input type="submit" ><button>,因此单击它不会触发内置表单提交(这会中断您的视频)。
  2. 将按钮的 id 属性设置为某个值,以便您可以轻松引用它,例如<button id="mysubmitbutton">. (当您使用它时,如果您还没有为您关心的所有表单字段提供 id 属性,那么您也可以轻松地引用它们,例如<input type="text" name="firstName" id="firstName">而不是 just <input type="text" name="firstName">
  3. <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>

启动它,它应该可以工作。显然,您将需要更改值以使其与您的表单等匹配。

希望有帮助!如果有,请标记为答案。

于 2011-03-26T22:16:30.340 回答