2013-02-12 76 views
0

我想爲joomla 2.5製作一個簡單的模塊。基本上我想能夠有一個人乘坐下拉列表。一旦選定。該地區辦事處/個人辦公室的信息將顯示在下拉框下方的div中。Joomla模塊構建。與數據庫連接的下拉列表

我最終希望有第二個下拉列表,允許用戶在首次選擇騎行後選擇辦公室電話,個人電話,辦公室電子郵件,個人電子郵件,辦公室地址或個人地址。這個決定信息會顯示在兩個下拉框下方。到目前爲止,我有模塊設置和安裝(結構是正確的)。只是沒有正確的代碼在我helper.php和TMPL /如default.php

HELPER.PHP

<?php 
// No Access 
defined('_JEXEC') or die ; 

//Add database Instance 
$db = JFactory::getDBO(); 
//Pass in query 
$query = "SELECT * FROM #__mlainfo"; 
//Run it 
$db -> setQuery($query); 

//Load it as an object into variable "$ridings" 
$riding = $db -> loadObjectList(); 

如default.php

<?php defined('_JEXEC') or die; ?> 

<div class="moduletable<?php echo $params->get('moduleclass_sfx') ?>"> 
<select> 
    <?php foreach ($riding as $riding_name => $ridings): ?> 
    <option value="<?php echo $riding_name ?>"> 
    <?php endforeach; ?> 
</select> 
</div> 

我知道我只有一半那裏。我得到一個選擇列表來顯示這個安裝。但它只有40個空格。任何幫助,將不勝感激。

所有的信息存儲在數據庫中,標題是;

騎(號),riding_name,FULL_NAME,off_address,per_address,off_email,per_email,off_phone,per_phone

+0

我是Joomla和PHP的新手,並且尋找與您所做的相同的事情。你可以推薦或建議任何模塊或擴展或插入此任務.. ?? 任何幫助將非常友好。 – 2013-10-23 09:33:49

+0

我最終聘請了一名自由職業者爲此構建了一個模塊/擴展,因爲我的編碼並不完全符合任務 – user1881482 2013-11-09 05:58:33

回答

2
loadObjectList() returns an indexed array of PHP objects 

<div class="moduletable<?php echo $params->get('moduleclass_sfx') ?>"> 
<select> 
    <?php foreach ($riding as $key => $ridings): ?> 
    <option value="<?php echo $ridings->riding?>"><?php echo $ridings->riding_name?></option> 
    <?php endforeach; ?> 
</select> 
</div> 

http://docs.joomla.org/Accessing_the_database_using_JDatabase/1.5#loadObjectList.28.29

希望這會有所幫助。

+0

這工作。還有一個問題,從這一點來顯示騎乘辦公室信息最簡單的方法是什麼。假設用戶選擇了第三個選擇選項。我想直接在辦公室信息框下方顯示。存儲在數據庫的同一行。 – user1881482 2013-02-12 20:48:55

+0

@ user1881482:一種方法是使用Ajax進行onchange.And從db中獲取數據。另一種方法是將$騎乘數據轉換爲json並在「onchange」事件中調用一個函數並顯示數據。 – Irfan 2013-02-12 20:51:27

+0

[鏈接] http://www.w3schools.com/php/php_ajax_database.asp這是否會在模塊中工作? – user1881482 2013-02-12 21:24:11

1

你只需要完成選項字段:

<?php defined('_JEXEC') or die; ?> 

<div class="moduletable<?php echo $params->get('moduleclass_sfx') ?>"> 
<select> 
    <?php foreach ($riding as $riding_name => $ridings): ?> 
    <option value="<?php echo $ridings->riding ?>"><?php echo $ridings->riding_name ?></option> 
    <?php endforeach; ?> 
</select> 
</div> 
+0

我以前也曾嘗試過。對於之前的40個空白項目,似乎只是將ARRAY值賦予了所有值。如何將數組轉換爲可用實體? – user1881482 2013-02-12 20:42:53

+0

'$ ridings'變量實際上將包含一個包含所有列的對象。您可以使用我更新的代碼的語法來獲得循環內的任何值。 – 2013-02-12 20:46:33

+0

謝謝你們一切都很好。有什麼機會可以幫助解決第二部分?在下拉菜單中填入與關聯選項中的辦公室信息相同的div。 – user1881482 2013-02-12 21:36:24