Javascript-Problem
Williederhammer
- javascript
0 Der Martin0 Williederhammer4 EKKi
0 Felix Riesterer
Hallo
ich habe folgendes Problem.
In einem HTML-Format werden Bilder übergeben, was auch die ganze Zeit funktionierte.
Jetzt wollte ich dazu ausser den Bildern noch "Logos" uploaden
und habe das Script folgendermassen erweitert:
<%include_template('admin_header.tpl.inc')%>
<%if ($admin == 1)%>
<script language="Javascript" src="../bbcode.js"></script>
<%/if%>
<script language="Javascript">
<!--
function submitIt() {
<%if ($admin == 1)%>
document.myform.message.name = 'a_text1';
<%foreach(@bildupload)%>
<%if (empty($bildupload.p_bild_da))%>
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.value = document.myform.p_bilder_<%$bildupload.p_lfdnr%>.value;
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.name = 'p_quellpfad[<%$bildupload.p_lfdnr%>]';
document.myform.p_bilder_<%$bildupload.p_lfdnr%>.name = 'p_bilder[<%$bildupload.p_lfdnr%>]';
<%/if%>
<%/foreach%>
<%/if%>
/* Logo-Anfang
function submitIt() {
<%if (!empty($a_id))%>
document.myform.message.name = 'a_text1'; */
<%foreach(@logoupload)%>
<%if (empty($logoupload.lo_logo_da))%>
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.value = document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.value;
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.name = 'lo_quellpfad[<%$logoupload.lo_lfdnr%>]';
document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.name = 'lo_logo[<%$logoupload.lo_lfdnr%>]';
<%/if%>
<%/foreach%>
<%/if%>
/* Logo - Ende */
document.myform.submit();
}
//-->
</script>
Leider wird nun aber gar nichts mehr gespeichert.
Was ist da faul?
Hi,
Jetzt wollte ich dazu ausser den Bildern noch "Logos" uploaden
wodurch unterscheiden sich den Logos von anderen Bildern?
und habe das Script folgendermassen erweitert:
Ich bin irritiert, dass du ein offenkundig serverseitiges Problem (nämlich eine Upload-Angelegenheit) im Bereich JAVASCRIPT postest.
<%include_template('admin_header.tpl.inc')%>
<%if ($admin == 1)%>
<script language="Javascript" src="../bbcode.js"></script>
<%/if%>
Und *wenn* es schon Javascript sein soll, dann doch gib doch bitte den Quellcode wieder, der auch tatsächlich beim Client ankommt, und nicht irgendeinen phantasievollen Code, der vermutlich serverseitig interpretiert wird.
<script language="Javascript">
Fehler: Das erforderliche type-Attribut fehlt.
<!--
Und das Auskommentieren von Javascript ist ein Relikt aus dem letzten Jahrtausend. Weg damit.
<%foreach(@bildupload)%>
<%if (empty($bildupload.p_bild_da))%>
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.value = document.myform.p_bilder_<%$bildupload.p_lfdnr%>.value;
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.name = 'p_quellpfad[<%$bildupload.p_lfdnr%>]';
document.myform.p_bilder_<%$bildupload.p_lfdnr%>.name = 'p_bilder[<%$bildupload.p_lfdnr%>]';
<%/if%>
<%/foreach%>
Diese bunte Vermischung von client- und serverseitigem Code beunruhigt mich zutiefst, denn sie lässt einen gravierenden Mangel an Verständnis für die zugrundeliegenden Techniken vermuten.
Was ist da faul?
Keine Ahnung - sag du's uns.
So long,
Martin
Also nochmal zur Klarstellung:
Es gibt zwei html-formulare, eins für Neueinrichtung eines Datensatzes und eins für das Ändern eines bestehenden Datensatzes.
Das Formular zum Ändern funktioniert soweit - anschliessend der Code.
(Ist wohl php,html und JS drinne)
Änderungs-Formular:
<!-- ##### Kopfzeile ##### -->
<head>
<style type="text/css">
.style1 {
background-color: #FFFF00;
}
</style>
</head>
<%include_template('admin_header.tpl.inc')%>
<script language="Javascript" src="../bbcode.js"></script>
<script language="Javascript">
<!--
function submitIt() {
<%if (!empty($a_id))%>
document.myform.message.name = 'a_text1';
<%foreach(@bildupload)%>
<%if (empty($bildupload.p_bild_da))%>
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.value = document.myform.p_bilder_<%$bildupload.p_lfdnr%>.value;
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.name = 'p_quellpfad[<%$bildupload.p_lfdnr%>]';
document.myform.p_bilder_<%$bildupload.p_lfdnr%>.name = 'p_bilder[<%$bildupload.p_lfdnr%>]';
/*
<%/if%>
<%/foreach%>
<%/if%>
/* Logo-Anfang
function submitIt() {
<%if (!empty($a_id))%>
document.myform.message.name = 'a_text1'; */
<%foreach(@logoupload)%>
<%if (empty($logoupload.lo_logo_da))%>
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.value = document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.value;
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.name = 'lo_quellpfad[<%$logoupload.lo_lfdnr%>]';
document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.name = 'lo_logo[<%$logoupload.lo_lfdnr%>]';
<%/if%>
<%/foreach%>
<%/if%>
/* Logo - Ende */
document.myform.submit();
}
//-->
</script>
Neueinrichtungs-Formular:
<!-- ##### Kopfzeile ##### -->
<head>
<style type="text/css">
.style1 {
background-color: #FFFF00;
}
</style>
</head>
<%include_template('admin_header.tpl.inc')%>
<%if ($admin == 1)%>
<script language="Javascript" src="../bbcode.js"></script>
<%/if%>
<script language="Javascript">
<!--
function submitIt() {
<%if ($admin == 1)%>
document.myform.message.name = 'a_text1';
<%foreach(@bildupload)%>
<%if (empty($bildupload.p_bild_da))%>
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.value = document.myform.p_bilder_<%$bildupload.p_lfdnr%>.value;
document.myform.p_quellpfad_<%$bildupload.p_lfdnr%>.name = 'p_quellpfad[<%$bildupload.p_lfdnr%>]';
document.myform.p_bilder_<%$bildupload.p_lfdnr%>.name = 'p_bilder[<%$bildupload.p_lfdnr%>]';
<%/if%>
<%/foreach%>
<%/if%>
/* Logo-Anfang */
function submitIt() {
<%if (!empty($a_id))%>
document.myform.message.name = 'a_text1';
<%foreach(@logoupload)%>
<%if (empty($logoupload.lo_logo_da))%>
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.value = document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.value;
document.myform.lo_quellpfad_<%$logoupload.lo_lfdnr%>.name = 'lo_quellpfad[<%$logoupload.lo_lfdnr%>]';
document.myform.lo_logo_<%$logoupload.lo_lfdnr%>.name = 'lo_bilder[<%$logoupload.lo_lfdnr%>]';
<%/if%>
<%/foreach%>
<%/if%>
/* Logo - Ende */
document.myform.submit();
}
//-->
</script>
Mahlzeit Williederhammer,
Also nochmal zur Klarstellung:
Dann stell doch auch endlich mal was klar, anstatt einfach nur Dein Posting samt Quelltext zu wiederholen. Die Leser in diesem Forum haben durchaus besseres zu tun, als zu raten, welche Sprachen und Technologien Du verwendest, den Fall bei sich nachzustellen, zu schauen, was vielleicht nicht klappen könnte und sich dann Lösungsvorschläge einfallen zu lassen: alles bis auf das letzte ist Dein Job!
Also liefere zu Anfang mal eine vernünftige Problembeschreibung: "klappt nicht" klappt nicht! Überprüfe anschließend die verwendeten Programme (Browser und/oder Webserver-Log/Protokoll) auf Fehlermeldungen. Schalte ggf. das Debugging ein. Kreise das Problem dadurch auf Client- oder Server-seitige Ursachen ein.
Poste anschließend den relevanten (entweder client- oder serverseitigen) Code mit aussagekräftigen Fehlermeldungen und einer Problembeschreibung, die es auch Außenstehenden ohne Glaskugel und hellseherische Fähigkeiten ermöglicht, Dein Problem zu verstehen und Dir einen Lösungsvorschlag zu machen.
Das Formular zum Ändern funktioniert soweit - anschliessend der Code.
(Ist wohl php,html und JS drinne)
Du weißt also noch nicht einmal, welche Technologien Du verwendest? Woher sollen Deine Leser das also wissen?
Nochmal in kurz: keine Arme - keine Kekse ...
MfG,
EKKi
Lieber Williederhammer,
ich verstehe Deinen Code nicht.
<%if ($admin == 1)%>
<script language="Javascript" src="../bbcode.js"></script>
<%/if%>
Was für eine Syntax benutzt Du da? Und mal so nebenbei: Das "language"-Attribut kannste getrost vergessen. Das "type"-Attribut würde ich stattdessen unbedingt mit in den Code schreiben!
Liebe Grüße,
Felix Riesterer.