2011-04-21 68 views
0

我正在使用jQuery的.ajax()發佈到名爲process.php的PHP文件。 Process.php中有很多代碼,但爲了簡單起見,我們只是說它包含<?php echo 'hello'; ?>使用jQuery的.get()檢索PHP數據

這是適當的jQuery插入process.php的結果到div.results? :

$.get('process.php', function(data) { 
    $('.results').html(data); 
}); 

到目前爲止,它似乎並沒有工作。

這裏的HTML/JavaScript文件

<!DOCTYPE html> 

<html lang="en"> 

<head> 
    <meta charset="UTF-8" /> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("form#form").submit(function() { 
       var username = $('#username').attr('value'); 
       $.ajax({ 
        type: 'POST', 
        url: 'process.php', 
        data: 'username=' + username, 
        success: function() { 
         $('form#form').hide(function() { 
          $.get('process.php', function(data) { 
           $('.results').html(data); 
          }); 
         }); 
        } 
       }); 
       return false; 
      }); 
     }); 
    </script> 

</head> 

<body id="body"> 

<form id="form" method="post"> 
    <p>Your username: <input type="text" value="" name="username" id="username" /></p> 
    <input type="submit" id="submit" value="Submit" /> 
</form> 

<div class="results"></div> 

</body> 

</html> 

這裏的process.php(大大簡化):

<?php 
    /* get info from ajax post */ 
    $username = htmlspecialchars(trim($_POST['username'])); 
    echo $username; 
?> 
+0

$(」的結果。)的html(數據)。是正確的,但它取決於你想要做什麼....還有其他方式也像加載,追加,前... n之後...你能提供更多關於div的信息 – Dharmesh 2011-04-21 05:12:17

回答

5

如果你只是想生成的字符串放回元素,使用load()

$('.results').load('process.php'); 

然而,看着你的代碼...

$.ajax({ 
    type: 'POST', 
    url: 'process.php', 
    data: 'username=' + username, 
    success: function() { 
     $('form#form').hide(function() { 
      $.get('process.php', function(data) { 
       $('.results').html(data); 
      }); 
     }); 
    } 
}); 

...顯示你誤會什麼。正確的匿名函數分配給success回調將是...

function(data) { 
    $('form#form').hide() 
    $('.results').html(data); 
} 
+0

Yuck你爲什麼使用負載。如果你正在獲取你想添加到頁面的內容,我會認爲你只使用加載。 – austinbv 2011-04-21 05:11:33

+2

@austin你可能想再次讀第一句。 – alex 2011-04-21 05:12:13

+0

哎呦:P我以爲他只是在處理......我想這就是他們所說的假設 – austinbv 2011-04-21 05:14:02

0

你可以嘗試這樣的事情。

function ajax_login() { 
    if ($("#username").val()) { 
    $.post("/process.php", { username : $("#username").val() }, function(data) { 
    if (data.length) { 
     $("#login_form").hide(); 
     $("#login_result").html(data); 
     } 
    }) 
    } else { 
     $("#login_result").hide(); 
    } 

然後在process.php中只是回顯出一些文本,如果帖子結束。

process.php =>

if (isset($_POST['username']) 
{ 
    echo 'hello '.$_POST['username']; 
}