PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XHTML Fehler



Spitfire
20.12.2010, 17:14
Mein letzten XHTML Fehler, dann wäre die Seite bereinigt, jedoch blicke ich hier auch nicht mehr durch. Es hängt mit der Box der Hersteller zusammen.

Fehlermeldung:


Line 138, Column 160: document type does not allow element "select" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag

…nchange="this.form.submit();" size="1"><option value="" selected="selected">Bi…


The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").


Da ich hier leider die Ursache nicht ganz verstehe, poste ich anbei mal die templates/source/boxes/manufacturers.php


<?php

/* -----------------------------------------------------------------------------------------
$Id: manufacturers.php 1262 2005-09-30 10:00:32Z mz $

XT-Commerce - community made shopping
http://www.xt-commerce.com

Copyright (c) 2003 XT-Commerce
-----------------------------------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(manufacturers.php,v 1.18 2003/02/10); www.oscommerce.com
(c) 2003 nextcommerce (manufacturers.php,v 1.9 2003/08/17); www.nextcommerce.org

Released under the GNU General Public License
---------------------------------------------------------------------------------------*/
$box_smarty = new smarty;
$box_content = '';

$box_smarty->assign('language', $_SESSION['language']);
// set cache ID
if (!CacheCheck()) {
$cache = false;
$box_smarty->caching = 0;
} else {
$cache = true;
$box_smarty->caching = 1;
$box_smarty->cache_lifetime = CACHE_LIFETIME;
$box_smarty->cache_modified_check = CACHE_CHECK;
$cache_id = $_SESSION['language'].(int) $_GET['manufacturers_id'];
}

if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_manufacturers.html', $cache_id) || !$cache) {
$box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

// include needed funtions
require_once (DIR_FS_INC.'xtc_hide_session_id.inc.php');
require_once (DIR_FS_INC.'xtc_draw_form.inc.php');
require_once (DIR_FS_INC.'xtc_draw_pull_down_menu.inc.php');

$manufacturers_query = "select distinct m.manufacturers_id, m.manufacturers_name from ".TABLE_MANUFACTURERS." as m, ".TABLE_PRODUCTS." as p where m.manufacturers_id=p.manufacturers_id order by m.manufacturers_name";

$manufacturers_query = xtDBquery($manufacturers_query);
if (xtc_db_num_rows($manufacturers_query, true) <= MAX_DISPLAY_MANUFACTURERS_IN_A_LIST) {
// Display a list
$manufacturers_list = '';
while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
$manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
if (isset ($_GET['manufacturers_id']) && ($_GET['manufacturers_id'] == $manufacturers['manufacturers_id']))
$manufacturers_name = '<b>'.$manufacturers_name.'</b>';
$manufacturers_list .= '<a href="'.xtc_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturers['manufacturers_id']).'">'.$manufacturers_name.'</a><br>';
}
$box_content = $manufacturers_list;
} else {
// Display a drop-down
$manufacturers_array = array ();
if (MAX_MANUFACTURERS_LIST < 2) {
$manufacturers_array[] = array ('id' => '', 'text' => PULL_DOWN_DEFAULT);
}

while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
$manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN).'..' : $manufacturers['manufacturers_name']);
$manufacturers_array[] = array ('id' => $manufacturers['manufacturers_id'], 'text' => $manufacturers_name);
}

$box_content = xtc_draw_form('manufacturers', xtc_href_link(FILENAME_DEFAULT, '', 'NONSSL', false), 'get').xtc_draw_pull_down_menu('manufacturers_id', $manufacturers_array, $_GET['manufacturers_id'], 'onchange="this.form.submit();" size="'.MAX_MANUFACTURERS_LIST.'"').xtc_hide_session_id().'</form>';

}

if ($box_content != '')
$box_smarty->assign('BOX_CONTENT', $box_content);

}
// set cache ID
if (!$cache) {
$box_manufacturers = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_manufacturers.html');
} else {
$box_manufacturers = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_manufacturers.html', $cache_id);
}

$smarty->assign('box_MANUFACTURERS', $box_manufacturers);
?>

liegts an diesem select???

Vielen Dank für Eure Hilfe!

berny
20.12.2010, 18:05

php hat in diesem Falle nix damit zu tun, das script liefert einen output, eben einen html-Code, der eben nicht xhtml-Konform ist.

Das select im php-script hat nix mit dem select im xhtml-code zu tun.