Formular auswerten

ok, dann poste jetzt bitte nochmal den aktuellen code innerhalb des form-tags,
dann bastel ich dir -ausnahmsweise- was übersichtlicheres daraus.
 
<form action="<?php $PHP_SELF; ?>" method="post">
<table width="95%" bgcolor="#0000CC" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<?PHP
echo '<td width="5%" bgcolor="#ffffff"><input style="WIDTH: 100%" tabIndex=1 type="text" name="pos1" class="input_rechts"></td>';
?>
<td width="60%" bgcolor="#ffffff">
<?PHP
$kundenquery = mysql_query ("SELECT id, re_kunde1 FROM $prefix"."_angebot WHERE angebotsnr='$angebotsnr'")or die(mysql_error());
$cat = mysql_fetch_object($kundenquery);
$kunden_bez = $cat->re_kunde1;

$kidquery = mysql_query ("SELECT id FROM $prefix"."_kunden WHERE firma1='$kunden_bez'")or die(mysql_error());
$kid = mysql_fetch_object($kidquery);
$kidsel = $kid->id;

$artikel = mysql_query ("SELECT id, bezeichnung1 FROM $prefix"."_artikel ORDER BY bezeichnung1 ASC")or die(mysql_error());
echo '<select onchange="this.form.preis.value=this.options[this.selectedIndex].value" name="preis1" class="input" style="WIDTH: 100%" tabIndex=2>';
while ($cat1 = mysql_fetch_object($artikel)) {
$preisquery = mysql_query ("SELECT preis1, waehrung1 FROM $prefix"."_preise WHERE ((id_artikel1 ='$cat1->id') and ((kunden_id='$kidsel') or (kunden_id=0))) ORDER BY kunden_id DESC")or die(mysql_error());
$cat2 = mysql_fetch_object($preisquery);
$preis1_deutsch = str_replace ('.', ',', $cat2->preis1);

echo "<option value=\"".$preis1_deutsch."&nbsp;".$cat2->waehrung1."|".$cat1->id."\">".$cat1->bezeichnung1."</option>";}

echo "</select>";
echo '</td>';

echo '<td width="10%" bgcolor="#ffffff"><input style="WIDTH: 100%" tabIndex=3 type="text" name="anzahl1" class="input_rechts"></td>';
echo '<td width="15%%" bgcolor="#ffffff" class="td"><INPUT style="WIDTH: 100%" class=input_rechts_read readOnly name="preis"></td>';
echo '<td width="10%%" bgcolor="#ffffff" class="td"><input style="WIDTH: 70%" tabIndex=4 type="text" name="rabatt1" class="input_rechts" value="0,00">&nbsp;%</td>';
?>
</tr>
<tr>
<td colspan="5" bgcolor="#0000CC" class="tableheader"><div align="right"><input type="submit" name="senden" value="hinzuf&uuml;gen" tabIndex=5 class="button"></div></td>
</tr>
</table>
</form>
 
öhm, muss nochmal nachfragen :-)
Wieso stehen die Preise nicht in der gleichen Tabelle wie die Artikel?
Wieso trägst du in die angebotstabelle den namen des kunden und nicht die kundenid?

Das würde einiges einfacher machen und den Server auch deutlich weniger belasten, als deine jetzige schleife-in-schleife-in-schleife konstruktion.
 
ok die Kundenid kann statt dem Kundennamen drinn stehen.
Der Preis steht in ner anderen Tabelle da es entweder einen Listenpreis oder einen Kundenspezifischen Preis für den Artikel geben kann
 
soweit wie ich den inhalt von <form> gepostet hatte.
Als value wirde mir nun folgendes Ausgegeben: Preis | Artikelid.
Das ist ok, das hab ich auch vor dem schreiben in die DB auch wieder zerlegt.

Problem: Ich hab ja die Zeile mit dem Onchange, welche mir im Formular dynamisch den Preis anzeigt, und da wird auch der Preis |Artikelid ausgegeben aber hier sollte nur de Preis sein und ich weiß nicht wie ich das in javascript auseinanderpflücke
 
damit hab ich es auch schon versucht, mein string wird dann auch zerlegt nur wird der Preis dann nimmer angezeigt hier mein code:

Code:
<head>
..
<script language="JavaScript">
<!--
function zerlege {
    var komplett = "this.options[this.selectedIndex].value";
    var zerlegt = komplett.substr(0,komplett.indexOf('|')) 
    this.form.preis.value= zerlegt;
}
//-->
</script>

</head>


...



echo '<select onchange=zerlege name="preis1" class="input" style="WIDTH: 100%" tabIndex=2>';



Kann mir dabei evtl jemand helfen ?
 
Was wird denn ausgegeben?
Wenn Du Preis|ArtikelID uebergibst sollte bei Deiner Funktion eigentlich nur der Preis ausgegeben werden.
Ausserdem waere es bei onChange vielleicht auch ratsam die "" zu setzen.
 
Zurück