2013-01-24 246 views
-1

我有一個AJAX帖子,發佈網站到PHP,然後返回它,我使用jQuery來查找和返回元素文本。這是工作形式的一些元素,但不是全部,我不明白爲什麼。對於body元標題和標題標記,它將返回undefined。是我的PHP或AJAX職位?jquery .html返回undefined

的jQuery/AJAX

var dataString = name; 
     //alert (dataString);return false; 

      $.ajax({ 
     type: "POST", 
     url: "senddom.php", 
     data: {"dataString" : dataString }, 
     dataType: "json", 
     success: function(response) { 
    var gdom = response; 
    $('body').append("<p> contents of title:" + $(response).find('Title').html()+ "</p>");   
    $('body').append("<p> contents of meta:" + $(response).find('meta').html()+ "</p>");  
    $('body').append("<p> contents of all: " + $(response).find('body').html() + "</p>"); 

$(response).find('p').each(function() { 
    $('body').append("<p> contents of p: " + $(this).html() + "</p>"); 
}); 

我的PHP

<?php 
    $site= $_POST['dataString'];    // get data 
function curl_get($site){ 
    $useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$site); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); 
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
    $data=curl_exec($ch); 
    curl_close($ch); 
    return $data; 

} 

function getdom($site){ 
    $html = curl_get($site); 
    // Create a new DOM Document 
    $xml = new DOMDocument(); 
    @$xml->loadHTML($html); 
    echo json_encode($html); 
} 

echo getdom($site); 
?> 
+0

你是否使用Firebug的控制檯來觀察請求/ repsonse? –

回答

4

你的AJAX調用期待JSON數據,以響應該請求,所以在你的success回調response變量將是一些物體類。您無法將常規對象傳遞給jQuery函數,但它不是爲了處理它而設計的。

像使用其他任何物體一樣使用對象,使用點 - object.property - 或方括號 - object["property"] - 表示法。或者更改您的服務器端代碼,以便返回可用格式(HTML或XML)而不是JSON。

+0

我將ajax文章中的數據類型更改爲html,並將php echo json_encode($ html)更改爲echo($ html),但其仍然無效。我只開始學習PHP,所以還是不太瞭解它。 – user2002077