Ich habe in der Tabelle ADR für einen Kunden mehrere Lieferadressen eingegeben. Zusatzlich habe ich eine Datei shipping.ipl erstellt mit folgendem Code:
<!--spmacro:module(shipping)
# Mögliche Lieferaddressen anbieten und in die Lieferfelder übertragen
sub select {
my $pre = ssp::db_get_prefix();
my $ADR = $pre . 'ADR';
my $read = 0;
my $kundennr = ssp::get_var_user('KDNRWAWI');
my $out;
my $sql = qq|SELECT LFDNR, ADDRESSNR, KUNDENNR, ADRTYPE, ANREDE, VORNAME, NAME, FIRMA, ORT, PLZ, STRASSE
FROM $ADR WHERE KUNDENNR = '$kundennr' ORDER BY PLZ ASC;|;
$read = ssp::readSQLData($sql,'LFDNR', 'ADDRESSNR','KUNDENNR','ADRTYPE','ANREDE','VORNAME','NAME','FIRMA','ORT','PLZ','STRASSE');
if ($read == -1) {
main::syserr("error: " . ssp::get_last_sqlerr());
}
if ($read == 0) { return;} # Keine Daten
# Bei Änderung Werte in die Lieferfelder schreiben
my $jsout = qq|<script type="text/javascript">
jQuery().ready( function() {
jQuery("#adrselect").change(function() {
var i = jQuery("#adrselect").val();
jQuery('#orderform input[name="LFDNR"]').val(liefer[0]);
jQuery('#orderform input[name="LPLZ"]').val(liefer[1]);
jQuery('#orderform input[name="LORT"]').val(liefer[2]);
jQuery('#orderform input[name="LFIRMA"]').val(liefer[3]);
jQuery('#orderform input[name="LNAME"]').val(liefer[4]);
jQuery('#orderform input[name="LVORAME"]').val(liefer[5]);
jQuery('#orderform input[name="LSTRASSE"]').val(liefer[6]);
});
});
var liefer = new Array();\n|;
# Select aufbauen
$out .= qq|
</td>
<td style="margin-top:5px;"><b>Lieferadressen vorbelegen</b></td>
<td>
<select style="width:230px;" id="adrselect">\n|;
for ($i = 0; $i < $read; ++$i) {
my $lfdnr = ssp::get_var_db('LFDNR',$i);
my $plz = ssp::get_var_db('PLZ',$i);
my $ort = trans(ssp::get_var_db('ORT',$i));
my $firma = trans(ssp::get_var_db('FIRMA',$i));
my $name = trans(ssp::get_var_db('NAME',$i));
my $vorname = trans(ssp::get_var_db('VORNAME',$i));
my $strasse = trans(ssp::get_var_db('STRASSE',$i));
$jsout .= qq|liefer[$i] = new Array ("$lfdnr","$plz","$ort","$firma","$name","$vorname","$strasse");\n|;
$out .= qq|<option value="$i">($lfdnr) $plz $ort $firma $name $vorname $strasse</option>\n|;
}
$out .= qq|</select>\n|;
$jsout .= qq|</script>\n|;
main::mprint "\n\n$jsout\n\n$out";
}
Im html-Code der Bestellseite habe ich die Datei mit
<!--spmacro:include(shipping.ipl)-->
eingebunden und will an passender Stelle die Funktion SELECT mit __shipping::select__ aufrufen.
Welche Formularfelder müssen eventuell noch in das Bestellformular eingefügt werden?
Ich erhalte immer einen iboshop.cgi Fehler, weil er angeblich die Funktion __shipping::select__ nicht findet.
Kann mir eventuell jemand ein Beispiel posten?
Danke für die Hilfe
Ingolf
Linkback: https://www.shoppilot.net/pf/index.php?topic=1749.0