2016-10-24 9 views
0

Ich möchte dynamisch mehrere Schaltflächen erstellen, die schließlich eindeutige Klickereignisse aufweisen. Der "Titel oder Name" jeder Schaltfläche wird in einem DB gespeichert. Ich habe überprüft, unabhängig, der Code zum Erstellen einer dynamischen Schaltfläche funktioniert und ich habe auch überprüft, meine Abfrage funktioniert ordnungsgemäß sowie meine "während" -Schleife. Das Folgende ist mein Code:Verwenden von PHP zum dynamischen Erstellen mehrerer eindeutiger Schaltflächen

$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>'; 
} 
} 

Hier ist der Anfang der Ergebnisse, wenn ich das Skript ausführen (es geht weiter). PNG IHDR 5 ; RPLTE __ ?? `! 5IDATX Ի O P T ڎ J Fѹ &> ƶ : > # q

Ich habe blaue rechteckige Tasten mit einem weißen Etikett erwartet. Was muss ich tun, damit dies mit PHP funktioniert oder muss ich eine Lösung mit JS suchen (ich kenne JS nicht sehr gut)? Ich habe "ähnliche Frage", das PHP-Handbuch und andere Artikel, die ich im Internet gefunden habe, angeschaut.

Ist das überhaupt möglich? Ich habe das Skript zum Erstellen einer Schaltfläche ausgeführt, und es funktioniert gut, wenn ich $ _GET ['text'] = "Hello Everyone" definiere, aber ich versuche, den "Text" aus einer DB-Tabelle zu ziehen. Auch hier möchte ich mehrere Schaltflächen aus mehreren Einträgen in der DB erstellen. Insbesondere die Spalte sess_butt. Ich habe meine Anfrage sogar auf "1" beschränkt und das hat auch nicht funktioniert ... gleiche Ergebnisse.

+2

Sie sollten das Handbuch für 'imagepng()' überprüfen. Es gibt kein HTML-Image-Tag aus. Es gibt den tatsächlichen Bildinhalt aus. [imagepng()] (http://php.net/manual/en/function.imagepng.php) –

Antwort

-1

Wenn Sie Bilder in Ihr HTML einbetten möchten, müssen Sie sie base64-codiert haben. Etwas wie:

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

empfehle ich Ihnen auch nicht, dies zu tun und generieren URLs statt, die Ihren anderen Skript schlagen wird, die nur die Bilderzeugung tun werden.

+0

Ich glaube, Sie haben einige PHP-Tags verpasst ... und es ist nur 'base64_encode()'. –

+0

@MagnusEriksson Es soll nicht genau PHP-Code sein, nur eine grobe Richtung in – Ivan

+0

verschieben Sorry, das hat nicht geholfen. Ich änderte meine Frage in der Hoffnung, ein wenig klarer zu sein, was ich will und was ich versucht habe. – Learner

Verwandte Themen