2011-01-29 56 views
2

我的问题:负载PHP内容与jQuery AJAX

我的index.html:

<form action="toload.php" method="post"> 
Input: <input type="text" name="something" value="" /><br /> 
<input type="submit" value="Submit!" /> 
</form> 

toload.php是一样的东西:

<?php 

echo "Your input was: " . $_POST["something"]; 

?> 

的问题很简单。

当我按下Submit!按钮时,我想动态加载内容toload.phpindex.html而不需要刷新。

在此先感谢!请评论任何需要的澄清。


编辑,更详细的解释:

我不知道我是清楚的(或者也许我不理解的答案做我缺乏技术技能),所以我会再给它一次。 (重写)

我有一个提交按钮通过POST方法发送变量的HTML。

这个变量被一个PHP文件使用,经过一定的处理后,它插入并更新一个MySQL数据库并回应出其他的东西。

这是工作JUST FINE。

但现在我想通过避免页面“重新加载”(进入.php)来改进它。

我希望HTHL作为我的HTML文件的输出来动态显示在我的HTML页面中。

现在更清楚了吗?

+1

退房http://api.jquery.com/load/ – 2011-01-29 23:00:40

+3

`$( “#divname”)负载。(URL,{东西:$( “东西”)VAL();}) `应该这样做 – 2011-01-29 23:01:32

回答

3

像这样使用jQuery !:

<form action="toload.php" method="post"> 
Input: <input type="text" id="something" name="something" value="" /><br /> 
<input type="submit" value="Submit!" onclick="submitme()" /> 
<div id="something2"></div> 
</form> 

和功能提交:

function submitme(){ 
var tosend=document.getElementById("something").value; 
$.ajax({ 
     type: 'POST', 
     url: 'toload.php', 
     data: 'something='+tosend, 
     success: function(msg){ 
      if(msg){ 
       document.getElementById("something2").innerHTML=msg; 
      } 
      else{ 
       return; 
      } 
     } 
    }); 
} 
0

您必须为此使用AJAX(XMLHttpRequest) - http://www.w3schools.com/XML/xml_http.asp

(你只说了一句 - jQuery的,只要装载100KB不是简单恕我直言,我认为纯JavaScript解决方案)

+0

顺便说一句,你可能想提到jQuery是* not * 100kB。 – alex 2011-01-29 23:11:04

+0

@Trufa,XMLHTTPRequest其实并不难。它允许您以编程方式发送请求,其方式与浏览器在加载页面时所用的方式相同。您可以捕获返回值(PHP的输出)并根据需要使用它。但是这个对象被包装在JQuery中,这使得它更容易和更好的跨浏览器兼容。 – GolezTrol 2011-01-29 23:11:52

0

你的情况,你可以使用$.post()DOCS。如果你给你的形式id="myForm"然后如下,你可以加载返回数据到窗体的父回调:

$('#myForm').submit(function(e){ 
    e.preventDefault(); 
    $.post("toload.php", $("#myForm").serialize(), function(data) { 
    $(this).parent().html(data); 
    }); 
});