没有Ajax的未解决的PHP页面刷新

时间:2016-03-17 08:53:08

标签: javascript php jquery html ajax

请问,有人可以针对我的问题发布错误修正和测试代码吗? 程序确实 - 22.php有形式。当用户输入并单击“提交”按钮时,结果应取自23.php并显示在22.php的div中

我已经尝试过以下解决方案,但没有一个能解决我的问题;

1)我改为:$(“#testform”)。submit(function(event){

2)我包括“return false;”最后,以防止它实际提交表单并重新加载页面。

3)清除我的浏览器缓存

我可以看到计算机上的程序发生了什么;

1)点击提交后,我没有收到错误消息。

2)我可以看到页面的标签快速重新加载,输入的文本字段被清除。

3)没有错误信息或结果显示。

<html>    
    <head>
      <title>My first PHP page</title>
      <script type="text/javascript" 
         src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script>
      $(document).ready(function() {            
        $("#btn").click(function(event){
           event.preventDefault();
           var myname = $("#name").val();
           var myage = $("#age").val();
           yourData ='myname='+myname+'&myage='+myage;
                $.ajax({
                  type:'POST',
                  data:yourData,//Without serialized                  
                  url: '23.php',
                  success:function(data) {
                     if(data){
                        $('#testform')[0].reset();//reset the form
			$('#result').val(data);
                        alert('Submitted');
                     }else{
                        return false;
                      }                        
                   };
                 });                    
            });             
         });
    </script>
   </head>
    <body>
      <form method="post" id="testform">
        Name:
        <input type="text" name="name" id="name" />Age:
        <input type="text" name="age" id="age" />
        <input type="submit" name="submit" id="btn" />
      </form>
	<div id='result'></div>
    </body>
</html>

<?php
if ( isset($_POST['name']) ) { // was the form submitted?
    echo "Welcome ". $_POST["name"] . "<br>";
    echo "You are ". $_POST["age"] . "years old<br>";
}

&GT;

4 个答案:

答案 0 :(得分:2)

您正在发送myname并在php中检查nameisset($_POST['name'])。 请勿使用.value()使用.html()进行数据呈现。和控制台记录数据,并使用firebug查看最新的请求和响应。  你能试试这个吗?

待更改

var yourData ='name='+myname+'&age='+myage; // php is expecting name and age

$('#result').html(data); // here html()

代码变为

 $(document).ready(function() {            
    $("#btn").click(function(event){
       event.preventDefault();
      var myname = $("#name").val();
       var myage = $("#age").val();
       var yourData ='name='+myname+'&age='+myage; // php is expecting name and age
            $.ajax({
              type:'POST',
              data:yourData,//Without serialized                  
              url: '23.php',
              success:function(data) {
                 if(data){
                    $('#testform')[0].reset();//reset the form
        $('#result').html(data); // here html()
                    alert('Submitted');
                 }else{
                    return false;
                  }                        
               }
             });
           });
         });

答案 1 :(得分:2)

您不需要更改您的PHP代码 尝试使用提交活动提交表单...

example2

你的php

applicationDidFinishLaunching

现在你成功的功能

$("#testform").submit(function(event){

use `dataType:json`; in your ajax ..

 yourData =$(this).serialize();

答案 2 :(得分:1)

尝试在ajax函数中格式化这样的帖子数据。

$.ajax({
  type:'POST',
  data : {
     myname: myname
     myage: myage
  }
  ...
}

修改

尝试删除

中的;
 return false;
          }                    
       };

return false;
          }                    
       }

答案 3 :(得分:1)

您可以在两端更改ajax和php:

@PHP:

您可以检查mynamemyage而不是nameage的正确发布数据。

<?php
if ( isset($_POST['myname'])) { // was the form submitted?
    echo "Welcome ". $_POST["myname"] . "<br>";
    echo "You are ". $_POST["myage"] . "years old<br>";
}
?>

或@Ajax:

yourData ='name='+myname+'&age='+myage;
//--------^^^^^^----------^^^^----change these to work without changing php

注意到#result是一个div元素。因此,您不能使用.val(),而是使用.html(), .append()等:

$('#result').html(data);