2017-03-22 3 views
0

Also erstelle ich Buttons aus einer Ergebnismenge der MySQL-Abfrage und verbinde Datenattribute aus diesen Ergebnissen. Alles gut mit Zahlen und Datumsangaben, aber wenn das Feld eine Zeichenfolge ist, wird das Datenattribut durch die Leerzeichen getrennt.PHP: string data-attribute gets split

Mein PHP-Code:

$options = ""; 
while($row=mysqli_fetch_array($of)) { 
    $options .= "<p><a class='btn btn-default btn-open-modal' role='button' data-id=".htmlentities($row["art_id"])." data-name=".htmlentities($row["art_name"]).">See details &raquo;</a></p>"; 
} 

Wenn ich die Taste inspizieren, erhalte ich so etwas wie Daten-name = "nike" shox = "" (wenn der Name in der Tabelle ist "Nike Shox"), aber Daten-ID = "1" ist in Ordnung.

Wie kann ich verhindern, dass der Datenname aufgeteilt wird?

Antwort

1

Ändern Sie diese ...

$options .= "<p><a class='btn btn-default btn-open-modal' role='button' data-id=".htmlentities($row["art_id"])." data-name=".htmlentities($row["art_name"]).">See details &raquo;</a></p>"; 

Um dies zu ...

$options .= '<p><a class="btn btn-default btn-open-modal" role="button" data-id="' . htmlentities($row["art_id"]) . '" data-name="' . htmlentities($row["art_name"]) . '">See details &raquo;</a></p>'; 
+0

Dank! Jetzt funktioniert es gut. Denken Sie daran, was ist der Unterschied in der Umgebung mit einfachen Anführungszeichen ('') als Anführungszeichen ("")? – Juank

+0

Wie Ihr Code geschrieben wurde, haben Sie Ihre String-Variable in Anführungszeichen eingeschlossen. Sie haben dann versucht, doppelte Anführungszeichen in den Datenattributen zu verwenden. Dies führte zu einem Ungleichgewicht der Zitate. Indem die Zeichenfolge in einfache Anführungszeichen eingeschlossen wurde, störten die in den Datenattributen verwendeten Anführungszeichen den PHP-Interpreter nicht. –