2012-03-09 29 views
0

我不知道如何做到這一點。我想通過jQuery將php代碼插入圖像源..但它不起作用。這是我的代碼和幫助將不勝感激!插入PHP代碼到jQuery中的圖像src

JQUERY:

var mainId = $(this).attr('id'); 
$("#intabdiv img").attr('src', '<?=resize("../php/admin/portfolio/before/'+mainId+'",$settings)?>'); 

HTML:

<div id="intabdiv"> 
<?php $settings = array('w'=>450,'h'=>450,'crop'=>true); ?> 
       <img src="" border="0" class="pic" /> 
      </div> 
</div> 
+0

顯示jQuery的瀏覽器中的「查看源代碼」的帖子代碼,並確保它包裝在準備好的事件中 – charlietfl 2012-03-09 06:02:26

回答

1

問題是你設置HTML作爲具有ID,但jQuery是使用選擇器爲一個類。

所以它改變:

$(".intabdiv img")... 

$("#intabdiv img")... 
+0

這就是我最初的,對不起,這是一個錯字,但它仍然不工作...更多幫幫我? – liveandream 2012-03-09 05:15:06

+0

它目前在源代碼中給你什麼? – Menztrual 2012-03-09 05:19:48

+0

另外; Jquery是通過動態生成它嗎?因爲如果是這樣,你會想做一個ajax請求並將結果發送到src屬性。 – Menztrual 2012-03-09 05:24:44

1

它看起來像你對我想擁有的客戶端瀏覽器執行PHP。這不適合你。我不確定你對服務器和客戶端之間的分離有完全清楚的認識,以及發生在哪裏。

這裏有一個簡單的模型,你可以用它來想想哪裏發生的事情:

  1. 用戶將網址在瀏覽器點擊進入
  2. 瀏覽器發送請求到服務器
  3. 服務器收到請求,並嘗試提供請求的資源
  4. 在此階段,如果文件是PHP文件,則執行任何PHP指令。這一切的最終結果,畢竟PHP完成並完成後,是一個HTML文件,也許帶有一些JavaScript。
  5. 服務器將此HTML文件發送回瀏覽器。
  6. 瀏覽器加載HTML文件,並執行任何可以操縱客戶端HTML的JavaScript。

那麼,我們在哪裏呢?您正嘗試拍攝服務器上存在的圖像文件,調整其大小並將其顯示給最終用戶。據推測,「調整大小」功能是您在PHP代碼中定義的一個功能。我假設你只需要做一次,並在頁面加載時顯示給用戶。

在這種情況下,你需要做的是更多的東西一樣以下(全部在同一個文件):

<?php 
$settings = array('w'=>450,'h'=>450,'crop'=>true); 
$imgsrc = resize("../php/admin/portfolio/before/imageid.jpg",$settings); 
?> 
<div id="intabdiv"> 
    <img src="<?= $imgsrc; ?>" border="0" class="pic" /> 
</div> 

...不需要的JavaScript。顯然,imageid.jpg必須是您嘗試訪問的圖像的實際文件名。相反,如果您試圖讓某些用戶操作觸發對圖像的訪問,請爲您要完成的內容提供更多的上下文,並給出更好的答案。

+0

是的,但這不適用於我。我必須通過jquery傳遞。我不想在jquery上運行php。我只想將php插入到src代碼中。我需要根據按鈕點擊生成的mainID。有沒有辦法通過jQuery傳遞原始html?謝謝 – liveandream 2012-03-09 05:39:10

+0

請原諒我的誤解,你實際上只是想讓一串PHP出現在你的img src屬性中,那實際上並不會執行,而且對於所有的意圖和目的,對瀏覽器來說都是廢話?我對你的理由感到好奇,但我至少明白,你是在客戶端用按鈕點擊生成ID,這意味着jquery將涉及到你想要去的地方。如果可以的話,能否請您從用戶的角度給出一個更完整的解釋,說明您想要完成什麼?您在此嘗試創建的用戶體驗是什麼? – Jason 2012-03-09 05:54:58

+0

@liveandream如果缺少這個JavaScript所在位置的完整背景,很難看到你想要做什麼。當你在瀏覽器中查看頁面源時,這行'$(「#intabdiv img」)。attr(...)'看起來像什麼? – 2012-03-09 05:58:51