eine "1" bekommen wenn die Seite aufgerufen wird

HTML:
<tr>
<--! Textfeld für die monatl. Mehrwertsteuer -->
    <td><input name="mwstmonat" type="hidden" class="Stil2" id="mwstmonat"  /></td>
    <td width="62"><span class="Stil2">pro Jahr</span></td>
    <td width="81" class="Stil2" id="mwstjahr" align="right"></td>
<--! Textfeld für die jährl. Mehrwertsteuer -->
    <td><input name="mwstjahr" type="hidden" class="Stil2" id="mwstjahr"  /></td>
</tr>
<tr>
    <td><span class="Stil2">Gesamtpreis pro Monat  &nbsp; </span></td>
    <td class="Stil2" id="gesmonat" align="right"> </td>
<--! Textfeld für den monatl. Gesamtbetrag -->
    <td><input name="gesamtmonat" type="hidden" class="Stil2" id="gesamtmonat" value="0" /></td> 
    <td><span class="Stil2">pro Jahr</span></td>
    <td class="Stil2" id="gesjahr" align="right"></td>
<--! Textfeld für den jährl. Gesamtbetrag -->
    <td><input name="gesamtjahr" type="hidden" class="Stil2" id="gesamtjahr" value="0" /></td>
</tr>

Sorry, war noch zu früh.
Es gibt bereits für alle 4 Angaben ein Textfeld! Die Frage ist jetzt nur wie du die Übergabe an PHP geregelt hast!?

Irgendwo hast du ja die SQL-Anweisung mit der du die Daten speicherst. Lass dir diese Anweisung mal mit echo am Bildschirm ausgeben und zeig uns wie sie aussieht. Vermutlich ist da ein Fehler drin.

Was mir im obigen Code aufgefallen ist: bei versteckten Textfeldern macht es eigentlich wenig Sinn CSS zu verwenden, man sieht es ja eh nicht.
 
Guten Morgen Thomas,
vielleicht habe ich mich auch wieder mal etwas blööd angestellt, aber für meinen Übertrag an die Datenbank benötige ich doch den <input name="mwstjahr" type="hidden" class="Stil2" id="mwstjahr" /> und diesen habe ich genauso wie alle anderen namen zum Übertragen gemacht, nur da steht nichts drinnen ?

hier nochmal das php skript wie ich übertrage:
PHP:
// Variablen aus dem Forumlar holen für die Abfrage "Kunde schon vorhanden"
	     $vorname=$_POST["vorname"]; 
	$familienname=$_POST["familienname"];
	         $plz=$_POST["plz"];
	         $blz=$_POST["blz"];
          	 $kto=$_POST["kto"];


// Überpruefen ob der Kunde schon vorhanden ist
  $query1 = "SELECT familienname FROM ResBar WHERE familienname LIKE '$familienname'  and blz LIKE '$blz' and vorname LIKE '$vorname' and plz LIKE '$plz'"; 
 
 
  $result = mysql_query($query1); // Fehlermeldung ausgeben, bzw. Kunden einfuegen
  $num=mysql_NumRows($result); 
  if ($num)
  {
     print "<p id=textinhalt> Kunde schon vorhanden!</p>";
  } 
  else 
  {
   // Daten in die Datenbank übertragen nach senden
if (isset($_POST["submit"])) 
{
    $query2 = "INSERT INTO ResBar SET 
	
	      vorname = '" .mysql_real_escape_string($_POST["vorname"]) ."',
	 familienname = '" .mysql_real_escape_string($_POST["familienname"]) ."',
   restaurantname = '" .mysql_real_escape_string($_POST["restaurantname"]) ."',
           kueche = '" .mysql_real_escape_string($_POST["kueche"]) ."',
           garten = '" .mysql_real_escape_string($_POST["garten"]) ."',
        behindert = '" .mysql_real_escape_string($_POST["behindert"]) ."',
            nacht = '" .mysql_real_escape_string($_POST["nacht"]) ."',
              plz = '" .mysql_real_escape_string($_POST["plz"]) ."',
              ort = '" .mysql_real_escape_string($_POST["ort"]) ."',
          strasse = '" .mysql_real_escape_string($_POST["strasse"]) ."',
          telefon = '" .mysql_real_escape_string($_POST["telefon"]) ."',
            email = '" .mysql_real_escape_string($_POST["email"]) ."',
         homepage = '" .mysql_real_escape_string($_POST["homepage"]) ."',
            monat = '" .mysql_real_escape_string($_POST["monat"]) ."',
             jahr = '" .mysql_real_escape_string($_POST["jahr"]) ."',
       grundpreis = '" .mysql_real_escape_string($_POST["grundpreis"]) ."',
          mitbild = '" .mysql_real_escape_string($_POST["mitbild"]) ."',
          mitlink = '" .mysql_real_escape_string($_POST["mitlink"]) ."',
	   mitwerbung = '" .mysql_real_escape_string($_POST["mitwerbung"]) ."',
	  
	  
	    mwstmonat = '" .mysql_real_escape_string($_POST["mwstmonat"]) ."',
	     mwstjahr = '" .mysql_real_escape_string($_POST["mwstjahr"]) ."',
	  gesamtmonat = '" .mysql_real_escape_string($_POST["gesamtjahr"]) ."',
	   gesamtjahr = '" .mysql_real_escape_string($_POST["gesamtjaht"]) ."',
	  
	  
              blz = '" .mysql_real_escape_string($_POST["blz"]) ."',
              kto = '" .mysql_real_escape_string($_POST["kto"]) ."',
              agb = '" .mysql_real_escape_string($_POST["agb"]) ."',";
			  
			  
 $query2 .= "land = '" .mysql_real_escape_string($_POST["land"]) ."'";
 
    if (isset($_POST["tage"])) {
        if (in_array("Montag", $_POST["tage"])) {
            $query2 .= ", montag = 'Mo'";
        }
        if (in_array("Dienstag", $_POST["tage"])) {
            $query2 .= ", dienstag = 'Di'";
        }
        if (in_array("Mittwoch", $_POST["tage"])) {
            $query2 .= ", mittwoch = 'Mi'";
        }
        if (in_array("Donnerstag", $_POST["tage"])) {
            $query2 .= ", donnerstag = 'Do'";
        }
        if (in_array("Freitag", $_POST["tage"])) {
            $query2 .= ", freitag = 'Fr'";
        }
        if (in_array("Samstag", $_POST["tage"])) {
            $query2 .= ", samstag = 'Sa'";
        }
        if (in_array("Sonntag", $_POST["tage"])) {
            $query2 .= ", sonntag = 'So'";
        }
    }

}
	  
	  
    $result2 = mysql_query($query2); 
    if ($result2)
    { 
     print"<p id=textinhalt>
	 <b> $vorname </b> <b> $familienname </b> <b> wurde erfolgreich in die Kundendatei aufgenommen. </p>";
    }
    else
    { 
      print "<p id=textinhalt>
	  Datenbankfehler! Kunde konnte nicht aufgenommen werden!</p>";
    } 
  } 

?>

Gruß
Rainer
 
1) Du nimmst die Angaben Vorname, Familienname, ... und verwendest sie in der Abfrage ohne sie vorher mit mysql_real_escape_string zu "prüfen".

2) Du prüfst erst dannach ob das Formular überhaupt abgeschickt wurde if (isset($_POST['submit']))

3) mysql_num_rows liefert immer einen Wert zurück entweder 1, 2, ... oder aber 0. Somit wirst du immer die Ausgabe "Kunde schon vorhanden erhalten" (oder etwa nicht!?)

4) Schreib mal vor $result = mysql_query($query2); einfach ein echo $query2; und zeig was da ausgegeben wird nachdem du das Formular abgeschickt hast.

5) Fehlen nur die Beträge und werden den die anderen Daten korrekt übermittelt oder kommt nach dem Senden gar nichts an?

NACHTRAG: Du hast einen Schreibfehler!!

PHP:
gesamtjahr = '" .mysql_real_escape_string($_POST["gesamtjaht"]) ."',

Die Variable muss "gesamtjahr" und nicht "gesamtjaht" heißen!!
 
Zuletzt bearbeitet:
Hallo Thomas

Du hast Recht,
zu deinem 3. --> da hatte ich schon seit längerer Zeit mal gefragt was man dagegen tun könnte und bekam den Lösungsvorschlag, dass die Anzeige nach 5sec ausgeblendet wird !


So nun das Ergebnis von echo $query2;


INSERT INTO ResBar SET vorname = 'Rainer ', familienname = 'Müller', restaurantname = 'rrrr', kueche = 'deutsch', garten = 'Ja', behindert = 'Ja', nacht = '', plz = '91166', ort = 'Georgensgmünd', strasse = 'rrrrr', telefon = '44444', email = '@@@', homepage = '', monat = 'April', jahr = '2014', grundpreis = '3.50', mitbild = '2.50', mitlink = '0.5', mitwerbung = '4.50', mwstmonat = '', mwstjahr = '', gesamtmonat = '0', gesamtjahr = '0', blz = '0815', kto = '4711', agb = 'Ja',land = 'Deutschland', montag = 'Mo', dienstag = 'Di', mittwoch = 'Mi', donnerstag = 'Do', freitag = 'Fr', samstag = 'Sa'

zu 5. wenn ich value="0" schreibe kommt auch die 0 an aber keine Beträge

Gruß
Rainer
 
Ok, das war mein Fehler. Ich habe bei der Berechnung nur die Tabellenzellen berücksichtigt aber nicht die Textfelder.

Javascript:
$(document).ready(function() {
    $("#gesamtmonat").val(parseFloat($("#grundpreis").val()).toFixed(2));
    $("#gesamtjahr").val((parseFloat($("#grundpreis").val()) * 12).toFixed(2));
    $("#mwstmonat").val(parseFloat($("#gesamtmonat").val() * .19).toFixed(2));
    $("#mwstjahr").val((parseFloat($("#mwstmonat").val()) * 12).toFixed(2));

    $("#gesjahr").text(parseFloat($("#gesamtmonat").val() * 12).toFixed(2) + "  €");
    $("#gesmonat").text($("#gesamtmonat").val()+ " €");

    $("#option1,  #option2, #option3").click(function(){
        if ($(this).is(":checked") == true){
            $("#gesamtmonat").val(parseFloat(parseFloat($("#gesamtmonat").val()) + parseFloat($(this).val())).toFixed(2));
        } else{
            $("#gesamtmonat").val(parseFloat(parseFloat($("#gesamtmonat").val()) - parseFloat($(this).val())).toFixed(2));
        }
        $("#gesmonat").text($("#gesamtmonat").val() + " €");
        $("#gesjahr").text(parseFloat($("#gesamtmonat").val() * 12).toFixed(2) + "  €");
        $("#mwstjahr").text((parseFloat($("#mwstmonat").text()) * 12).toFixed(2) + "  €");

		$("#gesamtjahr").val((parseFloat($("#gesamtmonat").val()) * 12).toFixed(2));
	    $("#mwstmonat").val(parseFloat($("#gesamtmonat").val() * .19).toFixed(2));
	    $("#mwstjahr").val((parseFloat($("#mwstmonat").val()) * 12).toFixed(2));

    });

});

Damit sollte es aber klappen.

Zu 3: Du musst für die komplette Prüfung den IF-Block so ändern das zuerst geprüft wird ob das Formular überhaupt abgeschickt wurde. Dann erst können die einzelnen Werte auf Vollständigkeit o.ä. geprüft werden!
 
Hallo Thomas,
es hatte sich bei dir zwei kleine Fehler eingeschlichen, die ich aber selber finden konnte (5 Std. :D ) aber ich hab es hinbekommen.
zum einen hat die mwstj und mwstm gefehlt (soll um Gottes Willen kein Vorwurf sein, sondern für Andere User die es nachvollziehen wollen) und es waren die geschweiften Klammern beim addieren und subtrahieren zuviel,


Hab mir die "versteckten" Textfelder zur Kontrolle anzeigen lassen, da es Probleme bei der Rechnerei zur Datenbank gab.

Diesr Code funktioniert:

HTML:
		<table width="541" border="0" cellpadding="3" cellspacing="3">
	<tr>
		<td width="213"><span class="Stil2">Grundpreis</span></td>
		<td width="60"><div align="right" class=" Stil2">3,50 €</div></td>
		<td width="20"><input name="grund" type="Text" class="summe " id="grundpreis" value="3.50" /></td>
	</tr>
    
    
	<tr>
		<td><span class="Stil2">mit Bild</span></td>
		<td><div align="right"><span class="Stil2">2,50 €</span></div></td>
		<td><input name="mitbild" type="checkbox" class="summe Stil2" id="option1" value="2.50" /></td>
        <td> <div align="right"><span class="Stil1">Option </span></div></td>
	</tr>
    
    
	<tr>
		<td><span class="Stil2">Link zur Homepage</span></td>
		<td><div align="right"><span class="Stil2">0,50 €</span></div></td>
		<td><input name="mitlink" type="checkbox" class="summe Stil2" id="option2" value="0.5" /></td>
        <td><div align="right" class="Stil1"> Option </span></div></td>
	</tr>

        
    <tr>
		<td><span class="Stil2">Werbung auf der Startseite &nbsp;&nbsp;</span></td>
        <td><div align="right"><span class="Stil2">4,50 €</span></div></td>
		<td><input name="mitwerbung" type="checkbox" class="summe Stil2" id="option3" value="4.50" /></td>
        <td><div align="right" class="Stil1"> Option </span></div></td>
	</tr>
    
        
    <tr>
	  <td height="2" colspan="5"></td>
	  </tr>
      
      
	<tr>
		<td><span class=" Stil2">Mwst. pro Monat</span></td>
		<td align="right" class=" Stil2" id="mwstm"></td>
		<td><input name="mwstmonat" type="Text" id="mwstmonat"  value="0" /></td>
        
		<td width="62"><span class="Stil2 Stil2">pro Jahr</span></td>
        
        <td width="81" align="right" class="Stil2" id="mwstj"></td>
        <td><input name="mwstjahr" type="Text" id="mwstjahr"  value="0" /></td>
 	</tr>
    
    
    
    <tr>
		<td class="Stil2"><span class=" Stil2">Gesamtpreis pro Monat  &nbsp; </span></td>
		<td align="right" class="Stil2" id="gesmonat"> </td>
		<td><input name="gemo" type="Text" id="gesamtmonat" value="0" /></td>
        
        <td class="Stil2"><span class="Stil2">pro Jahr</span></td>
        
        <td align="right" class="Stil2" id="gesjahr"></td>
        <td><input name="geja" type="Text" id="gesamtjahr" value="0" /></td>
	</tr>
</table>

Code:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
       $("#gesamtmonat").val(parseFloat(($("#grundpreis").val()) * 1) .toFixed(2));
       $("#gesamtjahr").val(parseFloat($("#grundpreis").val() * 12).toFixed(2));
       $("#mwstmonat").val(parseFloat($("#gesamtmonat").val() * .19).toFixed(2));
       $("#mwstjahr").val((parseFloat($("#mwstmonat").val()) * 12).toFixed(2));
    
    
    $("#gesjahr").text(parseFloat($("#gesamtmonat").val() * 12).toFixed(2) + "  €");
    $("#gesmonat").text($("#gesamtmonat").val()+ " €");
    
    
    $("#mwstj").text(parseFloat($("#mwstjahr").val() * 1).toFixed(2) + "  €");
    $("#mwstm").text($("#mwstmonat").val()+ " €");
    
    
      
 
    $("#option1,  #option2, #option3").click(function(){
        if ($(this).is(":checked") == true)
            $("#gesamtmonat").val(parseFloat(parseFloat($("#gesamtmonat").val()) + parseFloat($(this).val())).toFixed(2));
         else
            $("#gesamtmonat").val(parseFloat(parseFloat($("#gesamtmonat").val()) - parseFloat($(this).val())).toFixed(2));
        
          
        $("#gesamtjahr").val((parseFloat($("#gesamtmonat").val()) * 12).toFixed(2));
        $("#gesamtmonat").val((parseFloat($("#gesamtmonat").val()) * 1).toFixed(2));
        $("#mwstjahr").val((parseFloat($("#gesamtmonat").val()) * 12 * .19 ).toFixed(2));
        $("#mwstmonat").val((parseFloat($("#gesamtmonat").val()) * .19).toFixed(2));
      
        
        $("#gesmonat").text($("#gesamtmonat").val() + " €");
        $("#gesjahr").text(parseFloat($("#gesamtmonat").val() * 12).toFixed(2) + "  €");
        $("#mwstm").text($("#mwstmonat").val() + " €");
        $("#mwstj").text(parseFloat($("#mwstmonat").val() * 12).toFixed(2) + "  €");              

       
 
    });
 
});
</script>

aber ohne deine Hilfe hätte ich es nie geschafft,

Bei .mysql_real_escape_string was du gesagt hast bzw. was fehlt bei der Abfrage ob der Kunde schon vorhanden ist, verstehe ich nicht ganz, denn ist die Abfrage nicht schon Sicher mit

Code:
// Überpruefen ob der Kunde schon vorhanden ist
  $query1 = "SELECT familienname FROM ResBar WHERE familienname LIKE '$familienname'  and blz LIKE '$blz' and vorname LIKE '$vorname' and plz LIKE '$plz'";
http://www.tutorials.de/style/v11/images/smilies/mad.png

und mit dem Punkt 3 weiß ich nicht wie ich es umbauen muß, hast du da einen Ansatz?

Wenn ich Dich zu arg Stresse oder nerve dann sag es ruhig,

Gruß
Rainer
 
Hm, ich war mir eigentlich sicher es hätte beim Berechnen alles funktioniert!?

Was die Abfrage des Kunden angeht, da nisst du einfach die übergebene Variable und setzt sie in die Abfrage ein.

PHP:
//so ist es jetzt
$familienname = $_POST["familienname"];
// so sollte es mit allen Variablen sein die an die Datenbank übergeben werden
$familienname = mysql_real_escape_string($_POST["familienname"]);

LIKE ist eigentlich auch falsch, vergleiche mit "=" denn die Namen sollen ja kompett übereinstimmen!

Wobei ich die Abfrage für ein bisschen fehleranfällig halte.

Vorname = "Peter"
Nachname = "Müller"

Vorname = "P."
Nachname = "Müller"

Das ist bestimmt der selbe, doch du würdest ihn als neuen Kunden anlegen. Nimm doch zum Prüfen einfach die Email Adresse!?
 
Hallo Thomas
das rechnen im Javascript Anzeige hat auch gestimmt aber die Werte, die zur Datenbank übertragen werden, hatten falsch gerechnet ;)

Das mit dem Abfragen des Namens ist der Einwand wohl berechtigt, werde mir die e-mail und Nachnamen, vielleicht sogar noch eine dritte mal sehen.

Werde mir Morgen mal deine Antwort genauer anschauen.
Danke und ein schönes WE
Gruß
Rainer
 
Zurück