• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

multidimensionales Array an java übergeben

Sotx

New member
Hallo,

Ich müsste ein Schichtplan erstellen, komme zurzeit aber nicht weiter. Ich habe mir das so gedacht, dass man zuerst auswählt, welchen Beruf man angehört, dann erhält man den jeweiligen Schichtplan und alle anderen Mitarbeiter, die ebenfalls in diesem Berug tätig sind.

Mein Problem: Nachdem man die entsprechende Berufsgruppe ausgewählt hat, werden die Namen der anderen Mitarbeiter nicht angezeigt, es wird "Mitarbeiter 1" bis "Mitarbeiter 41" aufgelistet, die Namen jedoch nicht nur so wie es dort steht, um den Schichtplan kümmer ich mich später.


"Hintergrund"
PHP:
<?php
class Mitarbeiter
{
    private $art;
    private $mitarbeiter;
     
    public function __construct()
    {
        $this->set_art();
        $this->set_mitarbeiter();
    }
    public function get_art()
    {
        return $this->art;
    }
    
    public function get_mitarbeiter()
    {
        return $this->mitarbeiter;
    }
    
    private function set_art()
    {
        $this->art=array("0"=>"", "1"=>"Fahrer", "2"=>"Küche", "3"=>"Service", "4"=>"Büro"); 
        
    }

    private function set_mitarbeiter()
    {
        
        $this->mitarbeiter[] = array( 'name' => 'kiku', 'art' => '1');
        $this->mitarbeiter[] = array( 'name' => 'bka', 'art' => '1');
        $this->mitarbeiter[] = array( 'name' => 'blub', 'art' => '2');
        $this->mitarbeiter[] = array( 'name' => 'sigmu', 'art' => '3');
        $this->mitarbeiter[] = array( 'name' => 'baber', 'art' => '3');
        $this->mitarbeiter[] = array( 'name' => 'gippo', 'art' => '4');
        $this->mitarbeiter[] = array( 'name' => 'läsi', 'art' => '4');
        
    }
    
}
?>

PHP:
<?php
include("../Mitarbeiter/Mitarbeiter.php");

class Schichten
{
    public $var1;
    public $var2;

    public function form()
    {
        ?>     <---------Glaube hier liegt das Problem------------>
        <script type="text/javascript" language="javascript">
        function ausgabe()
        {
            var mitarbeiter=window.document.mitarbeiterartform.angestellte.value;
            for (var i = 0; i < mitarbeiter.length; i++) {
                document.write("<dl><dt>Mitarbeiter " + (i + 1) + "<\/dt>");
                for (var id in mitarbeiter[i])
                {
                    document.write("<dd>" + id + ": " + id[i][name] + "<\/dd>");
                    document.write("<\/dl>");
                }
            }
        }
        
        </script>
        <?php
        
        $mitarbeiter=new Mitarbeiter;
        $mitarbeiterart=$mitarbeiter->get_art();
        $angestellte=$mitarbeiter->get_mitarbeiter();
        $angestellte_string=implode(",", $angestellte);
        ?>
        <FORM METHOD="post" ACTION="" name="mitarbeiterartform" style="margin:10px 10px 10px 10px;"> 
            <div style="float:left; margin-right:20px;"> 
               
            </div>
            <div style="float:left; margin-right:20px;">
                <input type="hidden" value="<?=$angestellte_string;?>" name="angestellte" id="angestellte">
                <select name="art" size="1" onchange="return ausgabe()">
                    <?php
                        foreach($mitarbeiterart as $key=>$value)
                        {
                            echo "<option value=\"".$key."\">".$value."</option>";
                        }
                    ?>
                </select>
                
            </div>
        </FORM>
        <?php                  
        }
       */

    }
}
?>

Ich hoffe ihr könnt mir helfen :S hab gehört, es geht auch mit Json, was ich aber genauso wenig hinbekomme
Mfg Sotx
 
Zuletzt bearbeitet:
PHP:
$this->mitarbeiter[] = array( 'name' => 'bka, 'art' => '1');
da hast du das Komma an ner falschen Stelle ;)... aber ich nehme mal nicht an dass das der Fehler ist oder? hab grad nicht genug Zeit um mir den Code anzuschauen... aber du solltest mal auf template-Programmierung umsteigen
 
wie übergeb ich die daten denn dann? sodass nur die mitarbeiter angezeigt sind, die für die küche zuständig sind?
 
Java ist nicht JavaScript!

btw. dein Konzept ist mir ein völliges Rätsel...warum nutzt du keine Datenbank? deine Klassen sind total sinnlos, da braucht man auch keine Klassen zu machen.... du mischst PHP, Javascript und Html in einer Datei :(

da ist es doch schon vorprogrammiert, dass es zu Fehlern kommt! Sorry aber bei solchen Code will ich nicht helfen :cool:

vielleicht hilft dir ja Firebug ;), oder ein freundlicherer User als ich^^
 
Firebug will nicht helfen, dh ich warte wohl oder übel auf einen freundlicheren User : / ich komm nit weiter
 
PHP:
<?php
include("../Mitarbeiter/Mitarbeiter.php");

class Schichten
{
    public $var1;
    public $var2;

    public function form()
    {
        ?>     <---------Glaube hier liegt das Problem------------>
        <script type="text/javascript" language="javascript">
        function ausgabe()
        {
            var mitarbeiter=window.document.mitarbeiterartform.angestellte.value;
            for (var i = 0; i < mitarbeiter.length; i++) {
                document.write("<dl><dt>Mitarbeiter " + (i + 1) + "<\/dt>");
                for (var id in mitarbeiter[i])
                {
                    document.write("<dd>" + id + ": " + id[i][name] + "<\/dd>");
                    document.write("<\/dl>");
                }
            }
        }
        
        </script>
        <?php
        
        $mitarbeiter=new Mitarbeiter;
        $mitarbeiterart=$mitarbeiter->get_art();
        $angestellte=$mitarbeiter->get_mitarbeiter();
        $angestellte_string=implode(",", $angestellte);
        ?>
        <FORM METHOD="post" ACTION="" name="mitarbeiterartform" style="margin:10px 10px 10px 10px;"> 
            <div style="float:left; margin-right:20px;"> 
               
            </div>
            <div style="float:left; margin-right:20px;">
                <input type="hidden" value="<?=$angestellte_string;?>" name="angestellte" id="angestellte">
                <select name="art" size="1" onchange="return ausgabe()">
                    <?php
                        foreach($mitarbeiterart as $key=>$value)
                        {
                            echo "<option value=\"".$key."\">".$value."</option>";
                        }
                    ?>
                </select>
                
            </div>
        </FORM>
        <?php                  
        }
       */

    }
}
?>

Hast du dir mal deinen generierten Quellcode angeschaut? Ich würde mal behaupten das ?> ... <?php innerhalb einer PHP-Function nicht zu dem gewünschten ergebnis führt. Kanns gerade nicht testen.
 
Hast du dir mal deinen generierten Quellcode angeschaut? Ich würde mal behaupten das ?> ... <?php innerhalb einer PHP-Function nicht zu dem gewünschten ergebnis führt. Kanns gerade nicht testen.

err, grad getestet, tut scheinbar was es soll :$
(entsprechende source in dieser und der richtigen reihenfolge erst in den output-buffer schreiben wenn die methode aufgerufen wird)
 
Zuletzt bearbeitet:
Nö - ich glaub er will uns nur mitteilen wie unfreundlich wir sind.

aber nicht doch...

Soweit bin ich gekommen:

PHP:
<?php
include("../Mitarbeiter/Mitarbeiter.php");

class Schichten
{
    public $var1;
    public $var2;

    public function form()
    {

        
        $mitarbeiter=new Mitarbeiter;
        $mitarbeiterart=$mitarbeiter->get_art();
        $angestellte=$mitarbeiter->get_mitarbeiter();
        
        $angestellte_string = json_encode($angestellte);
        
 
        ?>
        <script type="text/javascript">
            var angestellte = <?php echo $angestellte_string ?>;
        </script>
        
        <FORM METHOD="post" ACTION="" name="mitarbeiterartform" style="margin:10px 10px 10px 10px;">

            <div style="float:left; margin-right:20px;"> 
               
            </div>
            <div style="float:left; margin-right:20px;">
                
                <select name="art" size="1" onchange="return ausgabe()">
                    <?php
                        foreach($mitarbeiterart as $key=>$value)
                        {
                            echo "<option value=\"".$key."\">".$value."</option>";
                        }
                    ?>
                </select>
                
            </div>
        </FORM>
        
        
        <?php

        ?>
        <script type="text/javascript" src="jquy-min.js"></script>
        <script type="text/javascript" language="javascript">
        
        function ausgabe()
        {
            var object = $(angestellte);
            art=window.document.mitarbeiterartform.art.value;
//Hier drum herum müsst ich dann glaub ich ein Formular machen... was ich nicht hinbekomme
            for(i=0; i<object.length; i++)
            {
                if(object[i].art==art)
                {
                    alert(object[i].name);
                }
            }

        }
        
        </script>
        

        <?php
    }
}
?>

Es werden jetzt die Namen der Mitarbeiter ausgegeben, wenn ich im dropdown menü z.B. auf Fahrer klicke, jedoch würde ich gern ein zweites dropdown menü haben, indem die Namen der Mitarbeiter aufgelistet sind. Was ich nicht hinbekomme : /

Mfg Sotx
 
Zuletzt bearbeitet:
Zurück
Oben