Array übergeben oder Seite refreshen ohne verlust der Variablen

BtheBeast

Mitglied
Hallo Leute,

also ich hab gerade eine online anmeldung geschrieben.
Funktioniert soweit recht gut ich hab nur ein Problem.
Ich habe eine HTML-Tabelle die mir anzeigt wer sich schon angemeldet hat, am Ende jeder Zeile ist eine Checkbox mit der man angibt ob derjenige schon bezahlt hat oder nicht.
Wenn man da eine Checkbox ändert und den submit Button "ändern" drückt, tut er genau das.

Ich schreibe alle IDs beim auslesen in ein array, welches ich dann durchgehe und wenn es gecheckt ist wird derjenige auf bezahlt gesetzt.
Jetzt zum eigentlichen Problem:
Das Array hab ich ja nur NACHDEM die HTML-Tabelle erstellt wurde und wenn ich dann dort das UPDATE mache, übernimmt er zwar die Werte aber er stellt es nicht mehr in der HTML-Tabelle da.
Wenn ich aber das UPDATE vor dem erstellen mach, kennt er das Array nicht mehr.
Hab schon refresh probiert oder header aber dann sind ja meine $_POST werte weg und wie man ein Array übergibt weiß ich leider nicht.
Wäre sehr nett wenn mir jemand helfen könnte.

Ich hoffe ich hab mich richtig ausgedrückt.

Gruß B
 
Also ich muss sagen erstens habe ich nicht verstanden, was genau du jetzt machen willst. Und zweitens wäre ein Code den du hast vielleicht ansatzweise ganz nützlich, um dir eventuelle Fehler aufzeigen zu können.
 
Oh je sorry,

ich konnte noch nie besonders gut erklären.

Hier im Beispiel(siehe unten) geht es um das array $stack, da stehen alle IDs drin, die vergleiche ich dann mit den IDs die ausgewählt worden sind und UPDATE.
Hier ist es dann so, das er zwar die neuen Daten übernimmt aber die Seite nicht neu darstellt. (wie ich Refresh mach weiß ich nur sind dann auch alle Werte die im Formular standen futsch)

Jetzt ein wenig verständlicher? sorry nochmal.

P.S hab den Code noch nicht aufgeräumt, mach ich aber noch, also bitte verzeiht.
Code:
.........
while ($row = $result->fetch_assoc()) {
    	
    	$i++;
    	
    	if($row['Bezahlt']=='1')
    		echo '<tr style="background-color:#1E90FF;">';
    	elseif($i%2)
        	echo '<tr style="background-color:#B8B8B8;">';
        else
        	echo '<tr style="background-color:#E5E5E5;">';
        
        if( $status >=1){
        	echo '<td>'.$row['ID'].'</td>
        		<td>'.$row['Name'].'</td>
        		<td>'.$row['Vorname'].'</td>
        		<td>';
        		echo date("d.m.Y ", strToTime($row['Geburtsdatum']));
        		echo'</td>';
        	}
        if( $status >=2){
        		echo '<td>'.$row['Strasse'].'</td>
        		<td>'.$row['PLZ'].'</td>
        		<td>'.$row['Ort'].'</td>
        		<td>'.$row['Telefon'].'</td>
        		<td>'.$row['Handy'].'</td>
        		<td>'.$row['HandyEltern'].'</td>
        		<td>'.$row['Email'].'</td>';
        }
        if($status ==3){
        	if($row['Typ'] == 'SC')
        		echo '<td style="background-color:#0000FF;">'.$row['Typ'].'</td>';
        	else
        		echo '<td style="background-color:#008B00;">'.$row['Typ'].'</td>';
        	if($row['Sanitaeter'] == '1')
        		echo '<td style="background-color:#FDFF0F;">'.$row['Sanitaeter'].'</td>';
        	else
        		echo '<td>'.$row['Sanitaeter'].'</td>';
        		echo '<td>'.$row['Charaktertyp'].'</td>
        		<td>'.$row['Bemerkung'].'</td>
        		<td>'.$row['Krankheiten'].'</td>
        		<td>'.$row['Gruppe'].'</td>
        		<td>'.$row['Datum'].'</td>';
        		}
        		
        	echo '<td>';
        	if($row['Bezahlt']== 0){
        	echo 'nein';
        	}
        	elseif($row['Bezahlt']== 1){
        	echo 'ja';
        	}
        	echo'</td>
        	<td><input type="checkbox"';
        	if($row['Bezahlt'] == 1)
        		echo' checked ';
        	echo' name="dbid[]" value="'.$row['ID'].'" /></td>
		</tr>';
              //----------------------------------------------------------
            //----------------------------------------------------------
 		if($row['Typ']=='SC'){
 			$sc++;
 		}
 		if($row['Sanitaeter']=='1'){
 			$sani++;
 		}
 		if($row['Bezahlt']=='1'){
 			$bezahlt++;
 		}
 		array_push($stack,$row['ID']);
 		    //----------------------------------------------------------
            //----------------------------------------------------------
    }
    
  echo '<p>Insgesamt: '.$i.', Bezahlt: '.$bezahlt.',  SCs: '.$sc.',  NSCs: '.($i-$sc).',  Sanitaeter: '.$sani.'</p>';  
  echo'<input type="submit" name="formaction" value="Aendern" /></table></form>';
}
}
if(isset($_POST['formaction'])){
  	 $ids = $_POST["dbid"]; 
   		echo count($stack).'<br>';
  for( $x = 0; $x < count($stack); $x++ ) 
  { 
  		$wert=0;
		for($z = 0; $z < count($ids); $z++){
			if($stack[$x] == $ids[$z])
				$wert = 1;	
		}
		echo $stack[$x];
    $sql = 'SELECT
                    ID
                FROM
                    '.$_POST['Con'].'
                WHERE
                    ID = ?';
        if (!$stmt = $db->prepare($sql)) {
            return $db->error;
        }
        $stmt->bind_param('i', $stack[$x]);
        if (!$stmt->execute()) {
            echo $stmt->error;
        }
        $stmt->bind_result($KatID);
        if (!$stmt->fetch()) {
            die ('Die angegebenen ID wurde nicht gefunden.');
        }
        $stmt->close();
    
      $sql = 'UPDATE
                    '.$_POST['Con'].'
                SET
                    Bezahlt = '.$wert.'
                WHERE
                    ID= ?';
        if (!$stmt = $db->prepare($sql)) {
            echo $db->error;
        }
        $stmt->bind_param('i', $stack[$x]);
        if (!$stmt->execute()) {
            echo $stmt->error;
        }
        $stmt->close();
  } 
  header("Location: db.php");
  }
 
Woher bezieht denn die Seite, welche die Liste darstellt, die benöigten Daten?
Kannst du diese nicht einfach in der Session speichern? Somit wäre das Problem, dass nach dem Weiterleiten die Daten weg sind, behoben. ;)
 
Zurück