2016-10-24 55 views
0

我要動態創建多個按鈕,最終將有專屬的點擊事件。每個按鈕的「標題或名稱」存儲在數據庫中。我已經獨立驗證了創建動態按鈕的代碼的工作原理,並且我還驗證了我的查詢以及我的「while」循環正常工作。以下是我的代碼:使用PHP動態創建多個獨特的按鈕

$q="SELECT sess_desc, sess_butt, sess_tag FROM Sessions ORDER BY DateEstab"; 
$r = mysqli_query ($dbc, $q); 
if ($r) { 
    while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { 
    $image = imagecreate(248,53); 
    $blue = imagecolorallocate($image, 0, 0, 255); //text box background color 
    $white = ImageColorAllocate($image, 255,255,255); //Font color 
    if(!isset($_GET['size'])) $_GET['size'] = 18; //text size 
    if(!isset($_GET['text'])) $_GET['text'] = $row['sess_butt']; //button lable 
imagettftext($image, $_GET['size'], 0, 20,35, $white, "tahoma",$_GET['text']); 

echo '<tr><td align="left">' . imagepng($image) . imagedestroy($image) .'</td> 
     <td align="left">' . $row['sess_desc'] . '</td> 
     '</td><td align="left">' . $row['sess_tag'] . '</td> </tr>'; 
} 
} 

這是我運行腳本時的結果的開始(它繼續)。 PNG IHDR5; RPLTE __ ??`5IDATXԻOPŤڎJFѹ&>ž! >器#q

我期待藍色矩形按鈕與白色標籤。我需要做什麼來使這個工作使用PHP或我需要尋找一個解決方案使用JS(我不知道JS非常好)?我看過「類似的問題」,PHP手冊和其他文章,我發現搜索互聯網。

這甚至可能嗎?我運行腳本創建一個按鈕,如果我定義$ _GET ['text'] =「Hello Everyone」,但它正常工作,但我試圖從數據庫表中拉出「文本」。同樣,我想從DB中的多個條目創建多個按鈕。特別是,sess_butt列。我甚至將我的查詢限制爲「1」,這也不起作用......結果相同。

+2

您應該檢查手冊:'imagepng()'。它不輸出HTML圖像標籤。它輸出實際的圖像內容。 [imagepng()](http://php.net/manual/en/function.imagepng.php) –

回答

-1

如果你想插入圖片到你的HTML,你需要讓他們base64編碼。喜歡的東西:

<img alt="Embedded Image" src="data:image/png;base64,base_64_encode(imagepng($image))"/> 

我也建議你不要這樣做,並生成的URL,而不是將被打你將要只是在做圖像生成其他腳本。

+0

我想你錯過了一些PHP標籤......而這只是'BASE64_ENCODE()'。 –

+0

@MagnusEriksson它不應該是精確的PHP代碼,只是一個粗略的方向進入 – Ivan

+0

對不起,這並沒有幫助。我修改了我的問題,希望能夠更清楚地瞭解我想要的以及我所嘗試的內容。 – Learner