2011-09-21 33 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}); 
相關問題