我有一个外部数据库,Mydbase包含以下表格:
我想在视图中显示主码,子代码,产品代码,公司名称,产品名称,容量以及之后的信息。
我也希望公开产品代码过滤器。
我已经设置了外部数据库的setting.php db_url。然后,我在页面中创建了用于选择公司的表单;一旦用户选择公司,我将公司代码存储在会话变量中以供参考。我将使用此变量来获取视图中的信息。我将在默认参数PHP代码中输入其值,而Views将为我提供所选公司的容量信息。此页面使用drupal_goto()
功能自动将用户重定向到容量的视图页面。该页面的代码如下。我的代码有问题:我无法将公司名称存储在变量中;我只能获取“maincode”和“subcode”的信息。如何获取下拉列表的显示值而不是标记值?
我不知道如何在没有drupal中的内容类型定义的情况下使用外部数据库的视图,并且也没有任何cck字段。如果我想在视图中公开产品代码,那么用户可以选择并查看选定公司的一个产品。
if(isset($_SESSION['ses_maincode'])){
echo "Company Main code Selected = " . $_SESSION['ses_maincode'] . "<br/>";
echo "Company Sub code Selected = " . $_SESSION['ses_subcode'] . "<br/>";
echo "<br />";
}
$output .= drupal_get_form('formexample_testform');
echo $output;
function formexample_testform() {
$myvalue = array();
$count = 0;
db_set_active('mydb');
$result = db_query('SELECT maincode,subcode,cname FROM {company}');
while ($row = db_fetch_array($result)) {
$arrayvalue = $row[maincode] . '+' . $row[subcode];
$myvalue[$arrayvalue]=$row['cname'];
$count = $count + 1;
}
db_set_active('default');
$form['select_company'] = array(
'#title' => t('Select Company'),
'#type' => 'select',
'#description' => t('Pick the company '),
'#options' => $myvalue,
'#multiple' => FALSE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
);
return $form;
}
function formexample_testform_submit($form_id, $form_state) {
$name = $form_state['values']['select_company'];
drupal_set_message(t(' You have select the company %name', array('%name' => $name)));
$mystring = $form_state['values']['select_company'];
$pos = strrpos($mystring, "+");
$endpoint = strlen($mystring) - $pos;
$_SESSION['ses_maincode']=substr($mystring,0,$pos);
$_SESSION['ses_subcode']=substr($mystring,$pos+1,$endpoint);
$urlstring='node/7';
/** . $_SESSION['ses_maincode']; */
drupal_goto($urlstring);
}