[Funktion] Ausdrucksproblem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    *g* immer die eindeutige zweideutigkeit!


    PHP-Code:
    <html><head><title>Test</title>
    <style type="text/css">
    <!--
    .normal { font-style:normal }
    -->
    </style>

    <script type="text/javascript">
    <!--
     function check() {
         if(document.getElementsByName("Zutat")[0].checked == true)
         {
              
              opener.document.form1.kateg.value = document.getElementsByName("Zutat")[0].value;
             self.close();
         }
         else
         {
             opener.document.form1.kateg.value = document.getElementsByName(" ").value;
             self.close(); 
         }
    }
    //-->
    </script>
    </head><body>
    <?
    require("../config/config.inc.php"); 
    require("../config/func.inc.php");
    sqlconnect()
    ?>
    <form name="Formular" action="">
    <?
    $read_003 = mysql_query("SELECT * FROM msc_kateg ORDER BY name");
                            while(list($id, $name) = mysql_fetch_row($read_003)) 
                            {
                            ?>



    <input type="checkbox" name="Zutat" value="<? echo $id ?>"> <? echo $name ?> <br>
    <? } ?>

    </form>
    <a href="javascript:check()">Daten &uuml;bertragen</a><br></div><br><br>
    </body></html>
    Also, wenn true setz er mir nun eine 1 ins Textfeld. Wenigstens mal soweit.
    Wenn nichts gecheckt ist soll das Textfeld leer ist, er schreibt aber im moment undefinied rein, wie ist das zu lösen?

    Kommentar


    • #17
      undefined kommt, weil es document.getElementsByName(" ").value; nicht gibt ... warum im else-zweig überhaupt was übergeben ?
      Kissolino.com

      Kommentar


      • #18
        Stimmt. Mein Problem liegt woanders. Ich habe zB in meinem Textfeld MX eingetragen. Nun rufe ich das Popup auf. Dort Deaktiviere ich alles. Wennich nun die Änderungen übernehme soll das Textfeld im "öffnendem" Dokument leer werden. Wie kann ich das bewerkstelligen.

        Ausserdem: Kann ich in einem Javascript auch PHP verwenden?

        Gruß manfred

        Kommentar


        • #19
          Oh mann, auch nach der Mittagspause läufts nicht schlechter. Da ich ja nie genau weiss wieviele checkboxen aktiv sind und ich gleich mehrere Werte übergeben muss muss ich mir ja in JS nen string zusammenpappen, richtig?

          PHP-Code:
           function check() 
           {
               if(
          document.getElementsByName("kateg")[0].checked == true)
                   {
                  
          test = ("kateg")[0]";"
                      
          }
                  
                  if(
          document.getElementsByName("kateg")[1].checked == true)
                  {
                  
          test = ("kateg")[0];("kateg")[1]
                  
          opener.document.form1.kateg.value document.getElementsByName("test").value;
                  
          self.close();
                  }
               


               else        {        
          self.close();     }


           }
          //-->
          </script
          So gehts auf jeden fall net. Und von Dynamic keine Spur. Ich brauch echt Hilfe.

          Kommentar


          • #20
            Original geschrieben von BlackPixel
            Wennich nun die Änderungen übernehme soll das Textfeld im "öffnendem" Dokument leer werden. Wie kann ich das bewerkstelligen.
            wenn ein textfeld keinen wert haben soll, dann weise seiner value-eigenschaft halt einen leerstring zu.
            Ausserdem: Kann ich in einem Javascript auch PHP verwenden?
            nein, natürlich nicht. steht aber schon x-mal hier im forum, ebenso wie der satz "mach dir mal den unterschied zwischen server- und clientseitig klar". gilt also für dich ebenfalls.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              bevor das hier zu einem javascript-kurs ausartet, schnapp dir lieber
              erstmal selfHTML und mach dich mit der syntax vertraut.

              kleine tipps am rande:
              - du kannst mit GetElementBy... auch ein array füllen und so dein script
              dynamisieren
              - formularfelder sprichst du immer über eine syntax wie "document.form.element.option/en" an,
              so "test = ("kateg")[0];("kateg")[1]" jedenfalls nicht
              Kissolino.com

              Kommentar


              • #22
                Ok, Ich bin ein versager... krieg das nicht gebacken. Ich werd das anders machen.
                Ganz Ohne Java. Ich übernehme die änderungen im Popup, schreib das in die db und lass das popup schliesen. Jetzt bräuchte ich nur eine kleine Hilfe.
                Ich muss das "öffnende" Fenster beim schliesen des Popups neu laden um das textfeld durch die MySQL abfrage korrekt darzutsellen. Wie geht das?
                Bitte nich mitm Hammer zuschlagen, bin grad etwas neben mir

                Gruß manfred

                Kommentar


                • #23
                  Original geschrieben von BlackPixel
                  Jetzt bräuchte ich nur eine kleine Hilfe.
                  Ich muss das "öffnende" Fenster beim schliesen des Popups neu laden um das textfeld durch die MySQL abfrage korrekt darzutsellen. Wie geht das?
                  dass du auf das öffnende fenster mit opener zugreifst, haben wir jetzt glaube ich schon zur genüge durchgekaut ... dieses "opener" ist lediglich eine weitere instanz des window-objektes, hat also auch alle dessen eigenschaften und methoden.


                  so, und jetzt erkläre mir bitte noch abschliessend, warum du deinen benutzer überhaupt mit einem popup nerven willst, wenn du anschliessend das hauptfenster sowieso wieder neu lädst ...?

                  dann öffne die seite zur dateneingabe doch gleich im hautfenster, schicke sie an dein script ab, welches die eintragung macht, und lasse dieses anschliessend wieder auf die übersichtsseite weiterleiten ... dann kannst du dir das ganze rummachen mit javascript doch gleich komplett sparen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #24
                    Ok, will ja nich nerven. Hab mir nun doch nochmal was überlegt:

                    PHP-Code:


                    <?
                    require("../config/config.inc.php"); 
                    require("../config/func.inc.php");
                    sqlconnect();
                    if($_GET['action'] == "load") load();
                    if($_GET['action'] == "write") write_();

                    function load() {
                    global $temp_adr_id, $id;
                    echo "<form name=\"kateg\" method=\"post\" action=\"kateg.php?action=write&temp_adr_id=$temp_adr_id\">";
                    $read_003 = mysql_query("SELECT * FROM msc_kateg ORDER BY name");
                                            while(list($id, $name) = mysql_fetch_row($read_003)) 
                                            {
                                            
                                                echo "<input type=\"checkbox\" name=\"kateg[]\" value=\"$name\"> $name<br>";
                                            } 
                                    echo "<input type=\"submit\" name=\"Submit\" value=\"Abschicken\">
                                    </form>";
                    }
                    function write_() {
                    global $temp_adr_id, $id, $kateg;

                    $string=implode('; ',$kateg);
                    ?>
                    <script type="text/javascript">
                    <!--
                        opener.document.formular.kateg.value = document.getElementsByName("string").value;
                        self.close();
                     
                    //-->
                    </script>
                    <?

                    }
                    ?>
                    Das ist mein Momentanes Programm. Funktioniert soweit ohne Probleme. Bis eben das mein Strin $string nich ans Textfeld übergeben wird. Könnt Ihr mir noch helfen das Problem zu lösen? Wie muss die Systax lauten damit JS mir den Inhalt von $string korrekt übergibt?

                    Thx & Cu

                    Manfred

                    Kommentar


                    • #25
                      PHP-Code:
                      opener.document.formular.kateg.value = "<?php echo $string?>";
                      sollte passen

                      btw:
                      1. wenn du schon $_GET nutzt, warum nicht auch $_POST?
                      2. was du da machst ist imho schwachfug (auch wenns klappt), in dem fall wäre es besser ohne javascript zu arbeiten (wie wahsaga schon schrieb)
                      Kissolino.com

                      Kommentar


                      • #26
                        funzt leider auch nicht

                        Kommentar


                        • #27
                          btw so sieht der Quelltext aus:


                          <script type="text/javascript">
                          <!--
                          opener.document.formular.kateg.value = "Privat";
                          self.close();

                          //-->
                          </script>







                          </body></html>

                          Kommentar


                          • #28
                            das steht schon in einem popup, oder?

                            EDIT:
                            ich sehe gerade, du hast das ganze überhaupt nicht verstanden:

                            die syntax lautet:
                            opener.document.DerNameDesFormulares.DerNameDesFormularElementes.value = ...

                            da kann ja nix klappen

                            Zuletzt geändert von Wurzel; 16.01.2004, 15:54.
                            Kissolino.com

                            Kommentar


                            • #29
                              Jup. in JS sollte formular form1 heissen, jetzt gehts wunderbar.

                              Das mit dem Popup mach ich aus diesem Grund weil es sich lediglich um status handelt die Dynamisch sein können und wegen der Ladezeit der Hauptseite, da wir viele User mit Modem haben. Auf jeden fall tuts jetzt!

                              Großen Dank!

                              Kommentar

                              Lädt...
                              X