当谈到jQuery时,我总是小菜一碟。这次我想在用户点击时填充选择框。我设法做到了这一点,但每当用户选择一个选项时,选择框会立即将其值恢复为默认值,因此用户无法选择他想要的选项。您可以在下面查看Joomla的代码,该代码用选择框加载数据库和HTML文件。我知道我做错了什么,但我不知道这是什么...点击jQuery和Joomla更新选择框
widget.php - 与查询
<?php
// Set flag that this is a parent file.
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
if (file_exists(dirname(__FILE__) . '/defines.php')) {
include_once dirname(__FILE__) . '/defines.php';
}
if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
$db = JFactory::getDbo();
$db2 = JFactory::getDbo();
$sql = "SELECT id, type, name FROM #__widgetkit_widget WHERE type = 'gallery'";
$db->setQuery($sql);
$rows = $db->loadObjectList();
$query = "SELECT id, b_name, w_id FROM #__yachts WHERE id = ".JRequest::getInt('id')."";
$db2->setQuery($query);
$rows2 = $db2->loadObjectList();
$my_yacht = $rows2[0]->w_id;
echo '<option value="">-- Please Select --</option>';
foreach($rows as $row) {
echo '<option value="'.$row->id.'"';
if($row->id == $my_yacht) { echo ' selected'; }
echo '>'.$row->name.'</option>'."\n";
}
?>
并与JavaScript的HTML文件的Joomla数据库文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr" >
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var j = jQuery.noConflict();
j(document).ready(function() {
j("#jform_w_id").click(function() {
j("#jform_w_id").load('widget.php');
});
});
</script>
</head>
<body>
<select class="" id="jform_w_id" name="jform[w_id]">
<option value="">-- Please Select --</option>
<option value="59">Bavaria 50 Cruiser</option>
<option value="60">Bavaria 49</option>
</select>
</body>
</html>
好吧,看来它不工作...检查你自己的行动:http://www.cre8.gr/box.php。至于准备好的声明,谢谢你!我一定会用准备好的语句改变所有的查询! – Panos
不好意思:'select'元素没有按照预期对'click'事件做出响应:http://forum.jquery.com/topic/problem-with-click-on-select-boxes-webkit。尝试使用'focus'处理程序来代替:'selectBox.focus(function(){...'但是:确保您没有在处理程序中执行任何操作以从元素中移除焦点,否则您会陷入一个丑陋的循环。 – Palpatim