2011-09-21 24 views
1

的index.html
<html> 
<head> 
</head> 
<body> 


     <input type="text" id="inputtext"><input type="button" value="submit "id="submit"> 
       <br>     
     <div id="response"> 
     </div> 


    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript" src="thescript.js"></script> 
</body> 
</html> 

thescript.js
$(document).ready(function(){ 

    $("#submit").click(function(){ 

     var dataString = $("#inputtext").val(); 



      $.ajax({ 
      type: "POST", 
      url: "greet.php", 
      data: dataString, 
      success: function(){ 
       $("#response").load("greet.php"); 
       } 
      }); 


    }); 




}); 

greet.php
<?PHP 

print "hello " . $_POST['dataString']; 

?> 

的在文本字段中输入的值应该在加载greet.php时显示。不知道为什么它不会工作jQuery的AJAX:通值从文本字段到PHP文件并显示值

+0

您似乎没有'index.html'的正确代码。 – Jez

+0

您已将javascript粘贴两次 - 缺少HTML部分 – Bruce

回答

1

我认为它可以更容易:

$("#submit").click(function() 
{ 
    var dataString = $("#inputtext").val(); 

      $.ajax({ 
      type: "POST", 
      url: "greet.php", 
      data: "dataString=" + dataString, 
      success: function(result){ 
       $("#response").html(result); 
       } 
      }); 
    }); 

而对于PHP:

<?PHP 
if(isset($_POST["dataString"])) 
{ 
    echo "hello " . $_POST['dataString']; 
} 
?> 
1

$ .ajax已经返回“hello”。然而,当你的页面收到它时,它会再次查询“greet.php”。

$.ajax({ 
      type: "POST", 
      url: "greet.php", 
      data: dataString, 
      success: function (response) { 
       $("#response").append(response); // or .html(response) 
       } 
      }); 

或更好:use .post();

$.post("greet.php", dataString, function (response) { 
    $("#response").append(response); // or .html(response) 
}); 

最后,是你的提交按钮的形式,而你处理click事件,您shoudld防止表单提交的点击,如果你想留在页面上,而不是重新加载它。

$("#submit").click(function(event) { 
    event.preventDefault(); 
    // stuff 
    return false; 
}); 
1

我不认为你有你的jQuery .ajax呼叫权限。从jQuery文档:

要发送到服务器的数据。它被转换成查询字符串,如果还不是字符串的话。它附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,则jQuery会根据传统设置的值(如下所述)使用相同的键序列化多个值。

你想传递PARAMS为您的数据,以键/值格式,而不仅仅是数据,您可以访问它在你的PHP为“dataString”这样的话是通过data: "dataString=" + dataString代替。

0
$(document).ready(function(){ 

    $("#submit").click(function(){ 

     var dataString = $("#inputtext").val(); 

       $("#response").load("greet.php"+ dataString); 
       }); 


    }); 
0

试试这个;

$("#response").load("greet.php", {dataString : dataString}); 
相关问题