Die Daten von andere Funktion aufrufen

Xching

Erfahrenes Mitglied
Hallo alles Zusammen,

Ich habe ein Problem, dass ich nicht machen kann. Das Problem war, dass ich die Daten von selectMode= =3 aus der Funktion getGroupFromBox nicht aufgerufen und in selectMode=4 eingefügt kann. Es sollte so funktioniert, wenn ich selectMode 4 auswählen könnte ich ich die Daten von selectMode= =3 aus der Funktion getGroupFromBox und die Daten aus selectMode 4 aufgerufen werden kann. Ich hoffe , dass ihr mir weiterhelfen kann oder einen Rat geben können, wie ich machen soll.


funktion getGroupFromBox

PHP:
 function getGroupFromBox($x1,$y1,$x2,$y2) {
    $xp1=min($x1,$x2);
    $xp2=max($x1,$x2);

    $yp1=min($y1,$y2);
    $yp2=max($y1,$y2);
    
    $add='';
    $group='';

    if ($this->selectMode==3 ) {
      // Nichts notwendig
    }else {
      $group='group by groupid';
    }
    $sql=sprintf("select groupid as grid,sp.spid,xpos,ypos,kart,sitznummer,reihe from Sitzplan sp
      inner join Kategorie k on k.spid=sp.spid and (k.vkatid is null or k.vkatid=0) 
      where sp.sstid=%d and (xpos>=%d and xpos<=%d and ypos>=%d and ypos<=%d) %s %s",$this->sstid,$xp1,$xp2,$yp1,$yp2,$add,$group);
    $oid=mysql_query($sql,$this->dbid);
    my_error($this->dbid,$sql);
    $grids=array();
    $select=array();
  
    $select=true;

    while($erg=mysql_fetch_assoc($oid)) {
          debug_log($erg,"select");
      //$this->selectMode==2
      //$this->erg=$erg;
      if ($this->selectMode==2 ) {
	    $select=$this->checkGroupDimensions($erg['grid'],$x1,$y1,$x2,$y2);
      }
      //print_r($erg);
      //SA//
      if($this->selectMode==3 ) {
	    if(!is_array($_SESSION['groupid.select']))
	    $_SESSION['groupid.select']=array();
	    $_SESSION['groupid.select']['spid'][]=$erg['spid'];
	    $erg['id']=$this->getId($erg['xpos'],$erg['ypos']);
	    $erg['kat']='s'.$erg['kart'];
	    $this->selectSeats[]=$erg; 
	    debug_log($erg,"select");      
     }
      //SA//
      else {
	if ($select && $erg['grid']>0)
	  $grids[]=$erg['grid'];
      }
    }
    return $grids;
    
  }

Es sollte bei selectMode 4 aufgerufen werden

PHP:
if($this->selectMode==4){
	      
	       
	    
	      if(is_array($_SESSION['groupid.select']['grid']) && count($_SESSION['groupid.select']['grid'])>0){
	       $this->deselect();
	    }
	      if(!is_array($_SESSION['groupid.select'])) {
	      $_SESSION['groupid.select']=array('spid'=>array(),
					                               'grid'=>array(),);
	     }
	    if(!is_array($_SESSION['groupid.select']['spid'])) {
	       $_SESSION['groupid.select']['spid']=array();
	    }  
	    
	    //ID und Kategorie setzen
	    $erg['id']=$this->getId($erg['xpos'],$erg['ypos']);
	    $erg['kat']='s'.$erg['kart'];
	    
	      if(in_array($erg['spid'],$_SESSION['groupid.select']['spid'])){
	     // Platz ist bereits selektiert
	     //$this->deselectSeats[]=$erg;
	     foreach($_SESSION['groupid.select']['spid'] as $nr => $spid){
	     if($spid==$erg['spid']){
		    unset($_SESSION['groupid.select']['spid'][$nr]);
	        }
	       }
	      }
	 else{
	         $this->selectSeats[]=$erg;
	         $_SESSION['groupid.select']['spid'][]=$erg['spid'];
      }
 
Hallo alles Zusammen,

Ich habe ein Problem, dass ich nicht machen kann. Das Problem war, dass ich die Daten von selectMode= =3 aus der Funktion getGroupFromBox nicht aufgerufen und in selectMode=4 eingefügt kann. Es sollte so funktioniert, wenn ich selectMode 4 auswählen könnte ich ich die Daten von selectMode= =3 aus der Funktion getGroupFromBox und die Daten aus selectMode 4 aufgerufen werden kann. Ich hoffe , dass ihr mir weiterhelfen kann oder einen Rat geben können, wie ich machen soll.
Ich versteh nur Bahnhof
 
Entschuldigung , mein Deutsch war noch nicht so gut . Ich werde mich noch mal bemühen, richtig meine Ziel zu erklären. Wenn ich die selectMode 4 auswählen werde, könnte ich die Befehle von SelectMode 3 und SelectMode 4 selber verwenden.
 
Und was bedeutet SelectMode 4 und 3? Das ist irgend eine AUswahl des Users, aber was soll das nachher bewirken?
 
SelectMode 4 bedeutet Auswählen des einzelnen Sitzplatzes zu markieren und auch alle Sitzplätze, die innerhalb Selectbox liegen zu markieren können .
SelectMode 3 bedeutet ,dass alle Sitzplätze, die innerhalb Selectbox liegen zu markieren können. Es soll so bewirkt, wenn ich SelectMode 4 auswähle,einzelne Sitzplatz soll markieren kann und andereseits sollenalle Sitzplätze, die innerhalb Selectbox liegen zu markieren können . die SelectMode 3 hat schon funktioniert.
 
Ich weiß nicht, ob ich dich jetzt richtig verstanden habe, aber so wie du es beschreibst, soll selectMode==4 das gleiche machen wie selectMode==3 aber noch zusätzliche Tasks? Wenn das stimmt, kannst du schon mal folgende Änderung machen:

PHP:
    while($erg=mysql_fetch_assoc($oid)) {
      debug_log($erg,"select");
      //$this->selectMode==2
      //$this->erg=$erg;
      if ($this->selectMode==2 ) {
        $select=$this->checkGroupDimensions($erg['grid'],$x1,$y1,$x2,$y2);
      }
      //print_r($erg);
      //SA//
      // Selectmode 3 and 4 are identical in task selectingGroups
      if($this->selectMode==3 || $this->selectMode==4) {
        if(!is_array($_SESSION['groupid.select']))
        $_SESSION['groupid.select']=array();
        $_SESSION['groupid.select']['spid'][]=$erg['spid'];
        $erg['id']=$this->getId($erg['xpos'],$erg['ypos']);
        $erg['kat']='s'.$erg['kart'];
        $this->selectSeats[]=$erg; 
        debug_log($erg,"select");      
      }
      //SA//
      /* Alert! This could be a problem, better use elseif above or this task will be executed in 
          any case where $selectMode is NOT 3 (or 4) */ 
      else {
        if ($select && $erg['grid']>0)
          $grids[]=$erg['grid'];
      }
      if( $selectMode == 4 )
      {
         // Special task for case $selectMode = 4
      }
   }

Aber den Rest habe ich nicht verstanden. Einen einzelen Sitzplatz zu markieren würde bedeuten, einen fixen Wert an die Funktion (x,y) übergeben zu müssen. Bei dir werden aber Bereiche übergeben. Was wäre denn deiner Meinung nach die exakte Position des Sitzplatzes, der ausgewählt werden soll?
 
Zurück