2013-01-05 60 views
0
<a href=# alt=Image Tooltip rel=tooltip content="<div id=imagcon><img src='.$row['images'].' class=tooltip-image/></div><div id=con>Address:'.$row['Address'].'</div><div id=con>Contact:'.$row['contact'].'</div><div id=con>Email:'.$row['email'].'</div><div id=con>Status:'.$row['status'].'</div><div id=con>Age:'.$row['age'].'</div>">'.$row['Name'].'</a>'.'<br>' 

我們怎樣才能在cakephp中寫這個?我們如何在cakephp中寫這個?

+2

護理格式化你的代碼? – miku

+0

這是非常可怕的代碼。我甚至沒有......我試圖編輯它來格式化它,但它就像是HTML和PHP的混搭。 – BadHorsie

回答

1

我猜你是問,因爲你知道你應該使用CakePHP的HTML幫助中的鏈接,但在你的情況我不會 - 我要麼編寫自定義CakePHP的助手來顯示你的HTML ..如果你是將一次又一次地使用此代碼,建立一個幫手(關於如何做到這一點下面的鏈接)..

...但看着你有什麼,你實際上並沒有太多,鏈接doesn實際上哪裏都去,所以爲什麼不保留你的東西?隨着圖像助手的例外是安全的:

<?php echo $this->Html->image($row['images'], array('class'=>'tooltip-image'));?> 

使用框架助手可以節省大量的時間嚴重金額和解決一些問題,地方太多,但並不總是解決方案..你可以過工程師使用助手。

以下是你在CakePHP中需要幫助者的所有信息,所以是你如何利用現有的傭工,以及如何創建自己:http://book.cakephp.org/2.0/en/views/helpers.html

0

你的代碼是無效的。你不能有多個具有相同值的ID。無固定你的破HTML

$content = '<div id=imagcon>' . $this->Html->image($row['images'], array('class' => 'tooltip-image')) . '</div>' . 
    '<div id=con>Address:'.$row['Address'].'</div>' . 
    '<div id=con>Contact:'.$row['contact'].'</div>' . 
    '<div id=con>Email:'.$row['email'].'</div>' . 
    '<div id=con>Status:'.$row['status'].'</div>' . 
    '<div id=con>Age:'.$row['age'].'</div>'; 

echo $this->Html->link($row['name'], '#', array(
    'alt' => 'image', 
    'rel' => 'tooltip', 
    'content' => $content, 
    'escape' => false 
)) . '<br/>'; 
0

有這麼多的事情你的代碼錯誤的基本HTML,甚至投擲PHP到混合之前。

  • 屬性的值應該有" "引號。
  • 如果你打算把HTML放在另一個HTML標籤的屬性中,它應該被轉義。
  • 除非整個字符串是PHP,否則您需要使用<?php ?>標籤注入PHP。
  • 您的HTML標籤多次使用相同的ID。 ID在頁面上應該是獨一無二的,所以如果你發現自己重複使用了一個ID,那就把它變成一個類。
  • 我不認爲content是一個HTML錨點的有效屬性(如果是的話,忽略這一點)。自定義屬性理想情況下應該以data-爲前綴,因此在這種情況下,該屬性將爲data-content

您應該做的第一件事是將內容部分分離出來,將其自己的PHP變量分離出來,您可以將其添加到鏈接中。這將有助於代碼的可讀性和組織性。

不改變你的HTML修正PHP屬性

<?php 
    $content = '<div id="imagcon"> 
        <img src="' . $row['images'] . '" class="tooltip-image" /> 
       </div> 
       <div id="con">Address:' . $row['Address'] . '</div> 
       <div id="con">Contact:' . $row['contact'] . '</div> 
       <div id="con">Email:' . $row['email'] . '</div> 
       <div id="con">Status:' . $row['status'] . '</div> 
       <div id="con">Age:' . $row['age'] . '</div>'; 

    echo '<a href="#" alt="Image Tooltip" rel="tooltip" content="' . $content . '">' . $row['Name'] . '</a><br />'; 
?> 

雖然我會建議您在HTML內容切換到這一點,如果可以的話:

它使用類,而不是重複的ID,並且還有一個帶唯一ID的外部div包裝器,以便您可以有效地從CSS或JavaScript中定位內部元素。如果您的數據庫表沒有id列,請使用主鍵字段的名稱或循環中的計數器替換(如果您沒有主鍵)(您應該)。我已經添加了這個,因爲它看起來像循環行並輸出這些鏈接。如果你不是,你可以刪除外部股利。最後,我改爲將鏈接的content屬性更改爲data-content

<?php 
    $content = '<div id="row-' . $row['id'] . '"> 
        <div class="imagcon"> 
         <img src="' . $row['images'] . '" class="tooltip-image" /> 
        </div> 
        <div class="con">Address:' . $row['Address'] . '</div> 
        <div class="con">Contact:' . $row['contact'] . '</div> 
        <div class="con">Email:' . $row['email'] . '</div> 
        <div class="con">Status:' . $row['status'] . '</div> 
        <div class="con">Age:' . $row['age'] . '</div> 
       </div>'; 
?> 

CakePHP的等效

<?php 
    $content = '<div id="row-' . $row['id'] . '"> 
        <div class="imagcon">' . $this->Html->image($row['images'], array('class' => 'tooltip-image')) . '</div> 
        <div class="con">Address:' . $row['Address'] . '</div> 
        <div class="con">Contact:' . $row['contact'] . '</div> 
        <div class="con">Email:' . $row['email'] . '</div> 
        <div class="con">Status:' . $row['status'] . '</div> 
        <div class="con">Age:' . $row['age'] . '</div> 
       </div>'; 

    echo $this->Html->link($row['name'], '#', array(
     'alt' => 'Image Tooltip', 
     'data-content' => $content, 
     'rel' => 'tooltip' 
    )); 
    echo '<br />'; 
?>