如何打开一个“get”?PHP窗口从jquery没有父页面刷新


How do I open a "get" php window from jquery without a parent page refresh?

我知道这个问题本身可能看起来有点模糊。让我详细说明一下。

我试图从jquery控制的页面发布数据到php文件。

这是我在jquery端所做的:

var openURL = "http://derp.com/restr/js/addfood.php?fname=" + encodeURI(food_n) + "&fcals=" + encodeURI(food_c);
window.open(openURL);

问题不是它不会去页面,问题是一旦代码被执行父页面重新加载。有什么办法可以避免这种情况发生吗?

您需要研究使用jQuery的ajax()方法。它们具有特殊的函数,当加载PHP脚本中的数据时将运行这些函数,而无需刷新页面。

基本思想是使用像…

$.ajax({
  url: "file_to_load.php",
  data: {},
  success: function(data){
    //it worked!
    alert(data);
  }
});

…使用data对象来保存get或post参数

我认为您唯一的选择是将内容重新加载到当前页面中。换句话说,整个第二页必须通过ajax替换原来的页面。根据您想要的性能,您可以立即加载带有"display:none"的整个第二页,减去新内容,然后将其添加到ajax之后。或者通过ajax传递"新页面",当然减去任何不会改变的内容,并相应地进行替换。

我还没有完全掌握ajax,所以可能有另一种方法,但我肯定从来没有听说过。