发布到PHP,不要重新加载页面并更新div

编辑:这现在有效,代码更新。 非常感谢Martin Amps!

所以我已经玩了一个星期了,并且已经将很多例子共同攻击但是它没有用,所以我不打扰发布代码因为它是一团糟! 我是所有行业的杰克,无人掌握,所以我不确定我哪里出错了。

这就是我需要的。


posttest.php

     
FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

FILLER

$('#processForm').submit(function() { var text = $('#textField').val(); var sid = $('#sessionID').val(); $.ajax({ url: "process.php", type: "POST", data: { 'text' : text, 'sessionID' : sid }, success: function(data) { var result = $.parseJSON(data); if (result.success) { // Handle your result and update your form accordingly // result.data.someKey $('#mydiv').text('Success! With ' + result.data); } else { // Error handling as applicable } } }); return false; });

process.php

  false, 'data' => $someText ); if (isset($_POST['text'], $_POST['sessionID'])) { // Do your queries $return['success'] = true; //$return['data'] = array('someKey' => 'someValue'); $return['data'] = $someText; } echo json_encode($return); ?> 

我已经尝试了很多这样的例子,并尝试从头开始制作我自己的例子,似乎无法让它工作! 我想要完成的一个例子就像你在Facebook上添加评论或新post一样。

我希望有人可以帮忙,因为我觉得我已经在这个简单的任务上浪费了一周时间。

提前致谢!

您不需要在页面中存储会话变量,因为它已经存储在cookie中。 假设您正在使用JQuery,这里有一个快速示例:

标记

 

Javascript

 $('#processForm').submit(function() { var text = $('#textField').val(); var sid = $('#sessionID').val(); $.ajax({ url: "process.php", type: "POST", data: { 'text' : text, 'sessionID' : sid }, success: function(data) { var result = $.parseJSON(data); if (result.success) { // Handle your result and update your form accordingly // result.data.someKey } else { // Error handling as applicable } } }); return false; }); 

process.php

  false, 'data' => array() ); if (isset($_POST['text'], $_POST['sessionID'])) { // Do your queries $return['success'] = true; $return['data'] = array('someKey' => 'someValue'); } echo json_encode($return); ?> 

注意

你应该使用绝对url并注意表单/ javascript是非突兀的,所以你应该让它在没有ajax的情况下运行。

您可以只使用一般的AJAX请求,然后更改响应中的div吗?

这当然是使用JQuery。

 $.ajax({ type: "POST", url: "/process.php", data: "yourData=AwesomeData&SomeOtherData=5", success: function(data){ //Update the div }, error: function(request){ //Something went wrong. }, }); 

我假设您只想通过ajax从process.php加载一些数据。 您可以使用jquery中的load()方法。 http://api.jquery.com/load/

index.php文件中:

 $('#container').load('process.php', {'variable1' : var1, 'variable2' : var2}); 

上面的代码用于使用POST请求通过ajax提交数据。 所以你必须使用$_POST['variable1']process.php文件中访问它们然后只是执行你的查询,我假设你已经如何做到这一点,所以我没有提供一个例子。 如果是多行结果,则需要将结果存储在数组中:

 $store = array(); foreach($result as $row){ $store[] = array('field1'=>$row['field_name']); } 

最后使用json_encode使数组更容易在javascript中处理:

 echo json_encode($store); 

如果您需要更多帮助,请随时发表评论。

以下是收集用户数据的Web表单示例:

 

这是jQuery:

 $('form button.submit').click(function() { $.ajax({ 'data' : $('form').serialize(), 'type' : 'POST', 'url' : 'process.php', 'success' : function(data) { $('div.container').html('

' + data + '

'); } }); });

这是PHP:

  

希望有所帮助!