Compu: Formularüberprüfung und andere Fragen

Hi,

in meinem Katalog befindet sich ein Formular, dass die Anzahl der gewählten Produkte an ein php Warenkorb Sript übergibt.
Die Werte befinden sich in einem Array anzahlNeu[].
Ich möchte überprüfen, ob der Benutzer in das Feld Eingabefeld "Anzahl" einen Wert oder Müll (andere zeichen) eingegeben hat.
Kann ich ein php Array an ein Java Script übergeben?
Oder macht man den Test bei professionellen Anwendungen nur in php weil man nicht weiß, ob der Benutzer Javascript aktiviert hat.

Eine andere Frage. Wieviele Funiktionen packt man normalerweise in eine separate Javascript Datei? Ich meine wie groß sollte eine JS Datei maximal sein?

Danke

  1. Ich möchte überprüfen, ob der Benutzer in das Feld Eingabefeld "Anzahl" einen Wert oder Müll (andere zeichen) eingegeben hat.
    Kann ich ein php Array an ein Java Script übergeben?

    warum ein array übergeben...?
    Du willst doch nur die eingeben in Deine formularfelder überprüfen.
    auf diese kannst Du auch direkt mit javascript zugreifen...

    Eine andere Frage. Wieviele Funiktionen packt man normalerweise in eine separate Javascript Datei? Ich meine wie groß sollte eine JS Datei maximal sein?

    man lagert funktion in eine separate datei aus, um die performance zu verbessern... also nach "kurzem" überlegen, wirst Du merken, dass diese frage überflüßig ist...

    MfG,
       Markus.

    1. Also hier zum Verständis meines Problems ein Auszug aus dem Katalogscript:

      <form name="artikelsuche" action="shoppingcard.php?update=1" method="post" onSubmit="ZahlChecker(document.artikelsuche.anzahlNeu[].value);">
         <table width="100%" border="1" cellspacing="0" cellpadding="2">
         <tr align="center">
         <th><?php echo $t_art_nr; ?></th>
         <th><?php echo $t_bezeichnung; ?></th>
         <th><?php echo $t_vpe; ?></th>
         <th><?php echo $t_preis; ?></th>
         <th><?php echo $t_preis."<br>ab ".$discount."x";?></th>
         <th><?php echo $t_anzahl; ?></th>
         </tr>

      <?php

      Daten

      $sql = "SELECT bi.d_artikelnummer, bi.d_anz_vpe, bi.d_vpe, bi.d_mass,
                        bi.d_ab1, bi.d_ab4, bi.d_ab6, bi.d_ab12,
                        ad.d_".$language.",ad.d_bild_artikel
                 FROM bestellinfo bi, artikeldetails ad
                 WHERE (bi.d_produktname LIKE '".$produktname."')
                    && (bi.d_artikelnummer = ad.d_artikelnummer)
                 ORDER BY ad.artikel_index";

      $result = @mysql_query($sql,$dbConnection);
         $colums = mysql_num_fields($result);

      while ($row=mysql_fetch_array($result))
         {

      echo "<tr align="center" onMouseOver="this.style.background='#ff0000';" onMouseOut="this.style.background='';">\n";
        echo "<td align="right">".$row['d_artikelnummer']."</td>\n";
           if ($row['d_bild_artikel']!="")
        {
          echo "<td align="right"><a href="../images/shop/products/".$row['d_bild_artikel'].".jpg" target="_blank">".$row["d_".$language]."</a></td>\n";
           }
        else
        {
          echo "<td align="right">".$row["d_".$language]."</td>\n";
        }
           echo "<td align="right">".$row['d_anz_vpe']." x ".$row['d_vpe']." ".$row['d_mass']."</td>\n";
           echo "<td align="right">EUR ".sprintf("%01.2f",$row['d_ab1'])."</td>\n";

      if ($_REQUEST['discount']=="6")
        {
         echo "<td align="right">EUR ".sprintf("%01.2f",$row['d_ab6'])."</td>\n";
        }
        elseif ($_REQUEST['discount']=="12")
        {
         echo "<td align="right">EUR ".sprintf("%01.2f",$row['d_ab12'])."</td>\n";
        }
        else
        {
         echo "<td align="right">EUR ".sprintf("%01.2f",$row['d_ab4'])."</td>\n";
        }

      echo "<td align="right"><input type="text" name="anzahlNeu[".$zaehler."]" size="2" maxlength="2" onFocus="document.all.rowcolor".$zaehler.".style.background='#ffff00'"></td>\n";
           echo "<input type="hidden" name="artikel_id[".$zaehler."]" value="".$row['d_artikelnummer']."">";
           echo "</tr>\n";
           $zaehler++;
         }
         echo "<input type="hidden" name="sid" value="".$sid."">\n";
         echo "<tr><td colspan="6" align="center"><input type="submit" value="".$t_inDenWarenkorb."" size="50"></td></tr>\n";
         echo "</table>\n";
         echo "</form>\n";

      Es werden also mehrere Produkte in einer Tabelle aufgeführt und daneben eine Box in der die Anzahl eingetragen werden kann.
      Ich muss ein Array an die Javascript funktion übergeben, weil der Benutzer mehrere Einträge machen kann, um sie zum Warenkorb hinzuzufügen. Aber wie soll das gehen. Der Name des Feldes für die Anzahl wird in einer Schleife durch php generiert. Also ein Array.
      Wie bekomme ich das in die JS Funktion rein?

      Danke

      1. Wie bekomme ich das in die JS Funktion rein?

        leider ist es nicht möglich eine variable welche in PHP erzeugt wurde an javascript zu übergeben...

        mfG,
           Markus.

        1. Hi Markus,

          habe die Frage oben in einem Thread gerade umformuliert, da ich selber eingesehen habe, dass es nicht geht.
          Aber man muss doch irgendwie herausbekommen können wie viele Elemente eines bestimmten Typs ein Formular enthält.

          Compu

          1. Aber man muss doch irgendwie herausbekommen können wie viele Elemente eines bestimmten Typs ein Formular enthält.

            dies wiederum ist mit javascript lösbar ...
            schau mal inn selfhtml nach... dort findest Du, wie man auf einzelne elemente eines formulars zugreifen kann !!!

            ich muß gestehen, ich hab Deine source nicht gelesen... :)
            aber ich glaub so tragisch ist Dein problem nicht...
            falls Du weiter probleme hast, poste einfach nochmal !

            mfG,
               Markus.

  2. Die Werte befinden sich in einem Array anzahlNeu[].

    Auf dem Server vielleicht aber nciht im Browser.

    Ich möchte überprüfen, ob der Benutzer in das Feld Eingabefeld "Anzahl" einen Wert oder Müll (andere zeichen) eingegeben hat.

    keine Problem. in selfhtml steht wie's geht.

    Kann ich ein php Array an ein Java Script übergeben?

    Nein. Javascript läuft (normalerweise) auf dem Client Rechner und hat keine Ahnung von PHP Variabeln. PHP läuft auf dem Server und weiss nix von JS. Da liegt wohl ein Verständnisproblem vor.

    Oder macht man den Test bei professionellen Anwendungen nur in php weil man nicht weiß, ob der Benutzer Javascript aktiviert hat.

    Jein. Man sollte, wenn auf jeden Fall beides machen, dann ist eine JS Prüfung nicht zu beanstanden.

    Eine andere Frage. Wieviele Funiktionen packt man normalerweise in eine separate Javascript Datei? Ich meine wie groß sollte eine JS Datei maximal sein?

    kommt drauf an was du deinen Besuchern zumuten möchtest, bzw. welchen nutzen sie durch das Skript haben.

    Struppi.