我有一个for循环,显示来自last.fm API的XML数据。我想要从查询中为每个单独的结果添加一个按钮,但它只是作为一段文本出现而不被识别为按钮。
$xmlmusic = new SimpleXMLElement($result);
$releases = $xmlmusic->xpath('artist/similar/artist');
foreach ($releases as $artist) {
$artistResult .= '<div class="searchitem">';
$artistName = $artist->name . PHP_EOL;
$artistResult .= $artist->name . PHP_EOL;
$artistResult .= '<form name="favourite" action="'.$_SERVER['PHP_SELF'];'" ." method="POST">';
$artistResult .= '<input type="submit" id="graphic" value="favourite">add</form>';
$artistResult .= '</div>';
<?php echo $artistResult ?>
这显示为带有“添加”的小方框,但它不会被视为按钮。
链接到页面:Artist Search
感谢任何帮助,
JB
答案 0 :(得分:2)
第一个问题就在这一行:
$artistResult .= '<form name="favourite" action="'.$_SERVER['PHP_SELF'];'" ." method="POST">';
您正在混合和匹配报价。尝试:
$artistResult .= '<form name="favourite" action="' . $_SERVER['PHP_SELF'] . '"' . ' method="POST">';
或更好:
$artistResult .= sprintf('<form name="favourite" action="%s" method="POST">', $_SERVER['PHP_SELF']);
或者甚至更好,只需删除action属性,因为默认情况下空操作意味着提交到同一个网址。
您的第二个问题是您创建了许多具有相同ID的提交按钮。 HTML要求ID属性是唯一的 - 您不能在多个元素上使用相同的ID。