2016-10-24 8 views
0

Я хочу динамически создавать несколько кнопок, которые в конечном итоге будут иметь уникальные события click. «Название или имя» каждой кнопки хранится в БД. Я проверял, независимо, код для создания динамической кнопки работает, и я также проверил, что мой запрос работает правильно, а также мой цикл 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 IHDR 5 ; RPLTE __ ?? `! 5IDATX Ի O P T ڎ J Fѹ &> ƶ : > # 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

Смежные вопросы