var rasg = new Array();
var rasgc = new Array();
var iMoR = false;
+var g_c_ns = "";
var g_c_tb = "";
var g_c_fk = "";
var g_c_sid = "";
}
}
-function initac(tb,fk,sid,db,v) {
+function initac(ns,tb,fk,sid,db,v) {
+ g_c_ns = ns;
g_c_tb = tb;
g_c_fk = fk;
g_c_sid = sid;
g_i_ac = document.getElementById(v).checked;
}
-function makeAC(tx,n,tb,fk,sid,db) {
+function makeAC(tx,n,ns,tb,fk,sid,db) {
otxb = document.getElementById(tx);
c_fac_c = n;
if(document.getElementById('no_ac').checked) {
otxb.onkeyup = function (oEvent) {
if (!oEvent) { oEvent = window.event; } hKU(oEvent);
};
- initac(tb,fk,sid,db,v);
+ initac(ns, tb,fk,sid,db,v);
} else {
otxb.onkeyup = function() {};
}
function SG1(s) {
if(!iMoR && s.length>0) {
- pr("autocomplete.php","tb="+g_c_tb+"&database="+g_c_db+"&server="+g_c_sid+"&fk="+g_c_fk+"&v="+escapeHTML(s)+"");
+ pr("autocomplete.php","ns="+g_c_ns+"&tb="+g_c_tb+"&database="+g_c_db+"&server="+g_c_sid+"&fk="+g_c_fk+"&v="+escapeHTML(s)+"");
} else if(!s.length) {
hideAC();
}
<?php
include_once('libraries/lib.inc.php');
$data->clean($_REQUEST['tb']);
+ $data->clean($_REQUEST['ns']);
$data->clean($_REQUEST['fk']);
$data->clean($_REQUEST['v']);
// FIXME: At some point this should be schema qualified
- $szSQL = 'SELECT * FROM "' . $_REQUEST['tb'] . '" WHERE "' . $_REQUEST['fk']
+ $szSQL = 'SELECT * FROM "' . $_REQUEST['ns'] . '"."' . $_REQUEST['tb'] . '" WHERE "' . $_REQUEST['fk']
. "\"::text LIKE '" . $_REQUEST['v'] . "%' ORDER BY \"". $_REQUEST['fk'] .'" LIMIT 11';
$objRes = $data->selectSet($szSQL);
// FIXME: add a better support for FKs on multi columns
if ($constraints->fields['contype'] == 'f') {
$arrayLocals[$nC] = $constraints->fields['p_field'];
- $arrayRefs[$nC] = array($constraints->fields['f_table'], $constraints->fields['f_field']);
+ $arrayRefs[$nC] = array($constraints->fields['f_schema'], $constraints->fields['f_table'], $constraints->fields['f_field']);
$nC++;
}
$constraints->moveNext();
$idxFound = array_search($attrs->fields['attname'], $arrayLocals);
// In PHP < 4.2.0 array_search returns NULL on failure
if ($idxFound !== NULL && $idxFound !== FALSE) {
- $szEvent = "makeAC('{$szValueName}',{$i},'{$arrayRefs[$idxFound][0]}','{$arrayRefs[$idxFound][1]}','{$_REQUEST['server']}','{$_REQUEST['database']}');";
+ $szEvent = "makeAC('{$szValueName}',{$i},'{$arrayRefs[$idxFound][0]}','{$arrayRefs[$idxFound][1]}','{$arrayRefs[$idxFound][2]}','{$_REQUEST['server']}','{$_REQUEST['database']}');";
$szEvents = "onfocus=\"{$szEvent}\" onblur=\"hideAC();document.getElementById('ac_form').onsubmit=function(){return true;};\" onchange=\"{$szEvent}\" id=\"{$szValueName}\" onkeyup=\"{$szEvent}\" autocomplete=\"off\" class='ac_field'";
$szDivPH = "<div id=\"fac{$i}_ph\"></div>";
}