Also nach etlichen weiteren Versuchen und diversen Ansätzen stehe ich nun doch im Wald, den ich vor lauter Bäumen nicht mehr sehe.
Was ich aufbauen will:
ich habe ein formular mit
1. einem text input (begrenzt auf 4 zeichen)
2. zwei radio buttons (noch nicht wichtig)
3. einen Submit Button
Jetzt soll im input feld eine vierstellige zahl eingeben werden können, deren validierungs string aus der oben beschrieben db tabelle stammt.
dazu habe ich folgendes in die formular initialisierung gebaut
// Daten aus der DB laden und leere JS Arrays erstellen
<?php
echo 'var validations = new Array();';
echo 'var dbcodes_string = new Array();';
$db = JFactory::getDBO();
$db->setQuery("select code from #__utr");
$entries = $db->loadObjectList();
// Daten ins Array schreiben
foreach($entries As $valcode){
echo "validations.push('$valcode->code".","."');"."\n";
}
?>
function ff_ValTest_init()
{
} // ff_ValTest_init
Dann habe ich eine neue Validierungsfunktion gebaut (abgewandelt aus der Dateiendungsprüfung für den Upload)
function ff_validate_code(element, message)
{
if(element.value != '')
{
dbcodes_string = dbcodes_string.push(validations);
//dbcodes_string = '1234,1111,5678'; //das HIER funktioniert!!!
dbcode = dbcodes_string.split(',');
code = element.value.substring(element.value.length-4,element.value.length); //
code = element.value;
for(p = 0;p < 5;p++) {
if (code == dbcode[p])
return '';
}
if (message=='') message = 'Code NICHT vorhanden!\n\n'
ff_validationFocus(element.name);
return message;
}
// return '';
if (message=='') message = 'Bitte Code eintragen!\n\n'
ff_validationFocus(element.name);
return message;
} // ff_validate_code
Im Quellcode sehe ich folgendes:
var validations = new Array();var dbcodes_string = new Array();validations.push('1111,');
validations.push('1234,');
validations.push('5678,');
function ff_ValTest_init()
{}
// und bei der validierungs funktion
function ff_validate_code(element,message)
{if(element.value!='')
{dbcodes_string=dbcodes_string.push(validations);dbcode=dbcodes_string.split(',');code=element.value.substring(element.value.length-4,element.value.length);code=element.value;for(p=0;p<5;p++){if(code==dbcode[p])
return '';}if(message=='')message='Code NICHT vorhanden!\n\n'
ff_validationFocus(element.name);return message;}if(message=='')message='Bitte Code eintragen!\n\n'
ff_validationFocus(element.name);return message;}
Nun habe ich die Befürchtung das ich die Var nicht richtig verarbeite.
Da meine Java Script Kenntnisse an seine Grenzen stossen, besonders bei der Verarbeitung un Übergabe der Varibalen, muss ich hier noch mals nach Hilfe fragen.
Besten Dank für jeden Tip.