无法在Joomla 3.2中回显对象的各个值

时间:2014-02-28 18:15:59

标签: php joomla joomla3.2

遵循本教程:http://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_a_Single_Table

我创建了一个函数如下:

function getItemForBid() {
        // Get a db connection.
        $db = JFactory::getDbo();

        // Create a new query object.
        $query = $db->getQuery(true);

        // Select item record matching the $orderID
        $query
            ->select($db->quoteName(array('id', 'created_by', 'itemtitle', 'deliverydestination', 'listprice')))
            ->from($db->quoteName('#__entrusters_items'))
            ->where('id = '.$_GET['orderID']);           
        // Reset the query using our newly populated query object.
        $db->setQuery($query);

        // Load the results as a list of stdClass objects (see later for more options on retrieving data).
$db->setQuery($query);
$bidItem = $db->loadObject();
//print_r($bidItem);
}

print_r($bidItem);起作用并返回,例如:

stdClass Object ( 
    [id] => 4 
    [created_by] => 216 
    [itemtitle] => Tennis Racket 
    [deliverydestination] => London 
    [listprice] => 5000 
)

但是,如果我尝试回显页面上其他一个值,例如:

<input name="jform[item_id]" id="jform_item_id" value="<?php echo $bidItem->id; ?> " readonly="" type="text">

我一无所获。手册说您可以使用以下方法访问各个值:

$result->index // e.g. $result->email

我做的事情非常愚蠢吗?

2 个答案:

答案 0 :(得分:1)

首先,不要将$_GET与Joomla一起使用,你应该像这样使用JInput:

$jinput = JFactory::getApplication()->input;
$orderID = $jinput->get('orderID', null, null);

对于您的数据库查询,请尝试将loadObject();更改为loadObjectList();

然后也不要忘记改变这个:

->where('id = '.$_GET['orderID']);  

到此:

->where('id = '. $orderID);  

答案 1 :(得分:0)

$ bidItem是您创建的函数的本地。将其声明为全局以在页面上的其他位置使用它。修改函数的最后几行,如:

    global $bidItem;
    $bidItem = $db->loadObject();
}

然后在HTML添加之前使用它:

<?php global $bidItem; ?>