Javascript Problem!

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

  • Javascript Problem!

    Hallo!

    Ich öffne von einer Seite mit einem Formular ein Popup,
    mit dem ich Einträge in eine MYsql DB eintrage, die noch nicht in der Liste enthalten sind.

    Nachdem ich aus dem Popup den Eintrag abgesendet habe,
    soll wenn der Eintrag erfolgreich hinzugefügt wurde, das Popup neugeladen werden. Damit beim Ereignis body OnLoad das Javascript ausgeführt wird, welches diesen Eintrag in die Liste des Opener Objekts hinzufügt und das Popup schließt.

    Das ganz funktioniert bei einer anderen Seite problemlos, nur bei der einen nicht!

    Hier der PHP Code des Popup Fensters!

    PHP-Code:
    <html>
    <head>
    <script type="text/javascript">
    function cust_add(customer){
    var Select = opener.document.getElementsByName("Customer")[0];
        var item = document.createElement("option");
        item.text = customer;

        try {
            Select.add(item, Select.length);
        } catch (e) {
            Select.add(item, null);
        }
    window.setTimeout('self.close()',10);
    }
    </script>
    </head>
    <?

    if (isset ($_POST["add_customer"])){

    require_once("../../includes/db_connect.inc");
    require_once("../../includes/functions.inc");

    $file=$_SERVER['PHP_SELF'];
    $customer=$_POST["Name"];
    $insert_customer = "INSERT INTO Customer (Name) VALUES ('$customer') ";
    $res_customer = mysql_query ($insert_customer);
    $num = mysql_affected_rows();
        if ($num > 0){
            $file=$file."?insert=ok&cust=$customer";
                    echo "<meta http-equiv='refresh' content='0; URL=$file'>";

        }else{
            Errormysql();
        }
        
    }else{

    if($_GET["insert"]=='ok'){
            echo "<body OnLoad='cust_add(".$_GET["cust"].")'>";
            }
    Das ist der HTML-Text nachdem ich das Popup abgeschickt habe!
    PHP-Code:
    <html>
    <
    head>
    <
    script type="text/javascript">
    function 
    cust_add(customer){
    var 
    Select opener.document.getElementsByName("Customer")[0];
        var 
    item document.createElement("option");
        
    item.text customer;

        try {
            
    Select.add(itemSelect.length);
        } catch (
    e) {
            
    Select.add(itemnull);
        }
    window.setTimeout('self.close()',10);
    }
    </
    script>
    </
    head>
    <
    body OnLoad='cust_add(vw)'
    Ich hoffe ihr versteht mein Problem.

    MfG
    [PHP]<?php
    if Work == true then brake now, exit; else go now home, exit; end if
    ?>[PHP]

  • #2
    Re: Javascript Problem!

    Original geschrieben von MrMarley
    Ich hoffe ihr versteht mein Problem.
    Sorry, aber ich habe den Eindruck, ich verstehe dein Problem so wenig wie du was von Javascript.
    <body OnLoad='cust_add(vw)'>
    onLoad schreibt man vorne klein. (Und in XHTML sogar ganz. Aber mit sowas wie Doctypes belastest du dich ja gar nicht ...)


    Außerdem kann es so m.E. gar nicht funktionieren - du erzeugst die Option im Popup, willst sie dann aber in das Select im Hauptfenster einfügen. Das geht aber nicht - wenn du ein Element in ein Dokument einfügen willst, musst du es auch in diesem Dokument (bzw. "Fenster") erzeugen. Du kannst nicht einfach Objekte vom einen zum anderen hin- und herwerfen, wie's dir passt.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      OK!

      Also ich hab den Fehler allein gefunden.

      Ja, onLoad wirds richtig geschrieben danke nochmal.
      Aber FF interessiert das nicht nur den IE...
      Aber das kann man auch bisschen freundlicher schreiben, wenn man sieht das jemand noch nicht so lang dabei ist...

      Wie gesagt, ich übergebe ja den Javascriptaufruf die Variable die ich eingebe.
      Und wenn das Text ist dann muss man das ja in Anführungszeichen setzen.

      Hier der geänderte Funktionsaufruf

      PHP-Code:
      if($_GET["insert"]=='ok'){
                  
      $jav="type_add('".$_GET["type"]."')";
              echo 
      "<body onLoad=\"$jav\">";
              } 
      Vielleicht kann man das aber mit den Anführungszeichen auch anders lösen,
      ich bin für eure Hilfe dankbar.

      THX
      Zuletzt geändert von MrMarley; 10.10.2005, 19:15.
      [PHP]<?php
      if Work == true then brake now, exit; else go now home, exit; end if
      ?>[PHP]

      Kommentar


      • #4
        Re: Javascript Problem!

        Original geschrieben von MrMarley
        require_once("../../includes/db_connect.inc");
        require_once("../../includes/functions.inc");
        _das ist hoffentlich nur ein ganz blöder scherz - wenn du serverseitig nicht dafür sorgst, dass inc.files nicht angezeigt werden können.

        OffTopic:
        in deiner signatur hast du n paar fehler hm?


        PHP-Code:
        if($_GET['insert']=='ok'){
           
        $jav='type_add('.$_GET['type'].')';
                echo 
        '<body onLoad="'.$jav.'">';

        sieht mE schöner + sinvoller aus
        Zuletzt geändert von aimbot; 10.10.2005, 20:58.
        MfG
        aim
        Lies mich jetzt!
        - OT-Tags-Liebhaber und BB-Code-Einrücker -

        Kommentar

        Lädt...
        X