2012-12-06 96 views
0

我有一個工作的JQuery使用的Ajax,並通過JSON響應更改頁面上列出的內容。通過Ajax,JSON,JQuery更改嵌入的Youtube視頻

它可以與文本完美配合,但是,現在我打算使用相同的代碼,但是會顯示一個視頻,而不是在顯示mpg的位置。但是,它只是顯示來自YouTube的嵌入代碼的文本。

的HTML網頁,其中獲得JSON響應:

$(document).ready(function() 
    { 
      $("#submitbutton").click(function() 
      { 
        $.ajax(
        { 
          url: "https://example.com/jsonServer.php", 
          type: "GET", 
          dataType: "jsonp", 
          jsonp: "callback", 
          data: { carselection: $("#carselection").val()}, 
          success: function(data) 
          { 
            if(data.name == "error") 
            { 
              $("#outputcarname").text("There is no such car available"), 
              $("#price").text(" "), 
              $("#mpg").text(" "); 
            } 
            else 
            { 
              $("#outputcarname").text(data.name), 
              $("#price").text(data.price), 
              $("#mpg").text(data.mpg); 
            } 
          }, 
          error: function() 
          { 
            $("#outputcarname").text("There is a problem with the server"), 
            $("#price").text(" "), 
            $("#mpg").text(" "); 
          } 
        }); 
      return false; 


}); 
}); 
</script> 

JSON服務器:

*請注意,我已經取代之一MPG與直接從YouTube嵌入代碼,並再次,這個嵌入代碼顯示準確就像在英寸的地區。

<?php 

    $cars = array('Maxima' => array('price' => '$32,780', 'mpg' => '24'), 
        'Prius' => array('price' => '$25,565', 'mpg' => '49'), 
        'Element' => array('price' => '$22,075', 'mpg' => '<iframe width="560" height="315" src="http://www.youtube.com/embed/enXTiYWQl-0" frameborder="0" allowfullscreen></iframe>')); 

    if(array_key_exists($_GET['carselection'], $cars)) 
    { 
      $carname = $_GET['carselection']; 
      $results = array('name' => $carname, 'price' => $cars[$carname]['price'], 'mpg' => $cars[$carname]['mpg']); 
    } 
    else 
    { 
      $results = array('name' => 'error'); 
    } 

    $callback = htmlentities($_GET['callback'], ENT_QUOTES); 
    print $callback . '(' . json_encode($results) . ')'; 
    ?> 

我的希望是,瀏覽器會接受的標籤,顯然顯示視頻,但我猜jquery.text是保持它作爲真正的文本。也許還有另一個功能,我不知道我應該使用?

回答

2

更改此:

$("#mpg").text(data.mpg); 

到:

$("#mpg").html(data.mpg); 

.text()將字符串作爲文本。

.html()將字符串作爲HTML

jQuery: text() vs html()?

+0

有時它只是這麼簡單!非常感謝! – ZAX