Html/Php/Javascript Tabelle mit 2 Formularactions

Joe

Erfahrenes Mitglied
Hallo Tutorials.de,

Wie schaffe ich es 2 Actions auszuführen in einem Table. Entweder schaffe ich es die Löschfunktion (Checkboxen) zu implementieren oder die Anzeige der Nachrichten. Ich stehe voll aufm Schlauch und mir fällt keine Lösung ein.
Würde mich freuen wenn ihr mal drüber schaut und mir helfen könntet.

PHP:
<div id="content-pic_ges_background">
<div id="content-pic">
	<?php include 'templates/Ress.tpl';  //include("templates/timer.tpl"); include("templates/ereigniss.tpl");?>
</div>
</div>
<div id="content_ges_background">
<div id=content>

<?php
//error_reporting(E_ALL);
echo "<h1>Nachrichten</h1>";
//Hiermit lesen wir mal aus, was die datei mit der PN tun soll und verweisen //auf die jeweilige funktion

if ('POST' == $_SERVER['REQUEST_METHOD']) {
echo "<p>TEST</p>"; //die;
	if (isset($_POST['add_checkbox'])) {
		echo "<p>TEST2</p>"; die;
		$add_checkbox=$_POST['add_checkbox'];
		$ids = implode(",", $add_checkbox);
		mysql_query("DELETE FROM PN WHERE ID IN ($ids)");
		
	}
	if (isset($_POST['ID'])) {
		$pnid = $_POST['ID'];
		//PN mal auslesen und als Referenz die ID nehmen
		$mypnsql = mysql_query("SELECT * FROM PN WHERE ID='$pnid'");

		$mypn=mysql_fetch_object($mypnsql);
		echo "<div class=\"outer\" style=\"width: auto; text-align: left;\" >
		<div class=\"inner\" style=\"background-color: #222; width:auto; text-align: left;\">";
		echo "<span style=\"color: #CDBE70\">VON:</span><span style=\"color: #EECFA1\">$mypn->Sendername</span>";
		echo "</div>
		</div>";
		echo "<div class=\"outer\" style=\"width: auto; text-align: left; \">
		<div class=\"inner\" style=\"background-color: #222; width:auto; text-align: left;\">";
		echo "<span style=\"color: #CDBE70\">Betreff:</span><span style=\"color: #EECFA1\">$mypn->Betreff</span>";
		echo "</div>";
		echo "</div>";
		echo "<div class=\"outer\" style=\"width: 530px;\">
		<div class=\"inner\" style=\"background-color: #222; width:auto\">";
		echo '<h2>Nachricht:</h2>';
		echo '<p>'.$mypn->Nachricht.'</p>';
		echo "</div>
		</div>";
		//nach dem Anzeigen setzen wir noch das Feld "gelesen" auf 'j' fuer ja:
		mysql_query("UPDATE PN SET gelesen = 'Ja' WHERE ID='$pnid'");
		?>
		<p><input type=button style="float: left;" onClick="window.location.href='main.php?section=pn'" value="Zurück">
		<form action='main.php?section=pn' method='post'>
		<?php
		echo "<input type='hidden' name='Schreiben' value='$pnid'>";
		echo "<input type='hidden' name='Empfänger' value='$mypn->Sendername'>";
		echo "<input type='hidden' name='Betreff' value='$mypn->Betreff'>";
		echo "<input type='hidden' name='NachrichtPN' value='$mypn->Nachricht'>";
		?>
		<input type='submit' style="float: left;" name='formaction2' value='Antworten'></form></p>
		<form action='main.php?section=pn' method='post'>
		<?php
		echo "<input type='hidden' name='add_checkbox[]' value='$pnid'>";
		?>
		<input type='submit' name='formaction2' value='!LÖSCHEN!'></form></p>
		
		<?php
		die;
	}
	if (isset($_POST['Schreiben'])) {
		?>
		<form action="main.php?section=pn" method="POST">
		<table>
		<tr>
		  <td><p>AN:</p></td>
		 </tr>
		<tr> 
		  <td><p><input type="text" style="width: auto;" value="<?php if (isset($_POST['Empfänger'])) { echo $_POST['Empfänger'];} ?>" name="Empfaenger"></p></td>
		</tr>
		<tr>
		  <td><p>Betreff:</p></td>
		 </tr>
		 <tr>
		  <td><p><input style="width: 530px;" type="text" value="<?php if (isset($_POST['Betreff'])) { echo 'RE:'.$_POST['Betreff'];} ?>" name="Betreff"></p></td>
		</tr>
		</tr>
		<tr>
		   <td><p>Nachricht:</p></td>
		  </tr>
		  <tr>
		  <td><p><textarea style="width: 530px;height: 250px;" value="<?php if (isset($_POST['NachrichtPN'])) { echo $_POST['NachrichtPN'];} ?>" name="NachrichtPN"></textarea></p></td>
		</tr>
		<tr>
		  <td colspan="2"><p><input type="submit" value="PN senden !"></p></td>
		</tr>
		</table>
		</form>
		<?php
		die;
	}
	
	if (isset($_POST['NachrichtPN'])) {
		
		$Empfaenger = $_POST['Empfaenger'];
		$Betreff= $_POST['Betreff'];
		$NachrichtPN = $_POST['NachrichtPN'];
		$gelesen = 'Nein';

		$datum = getdate();
		$datums = "$datum[year]-$datum[mon]-$datum[mday]";

		mysql_query("INSERT INTO 
						PN
							(Sendername,Empfängername,Betreff,Nachricht,Datum,gelesen)
						VALUES
							('$Username','$Empfaenger','$Betreff','$NachrichtPN','$datums','$gelesen')");

		unset($_POST['Schreiben']);
	}
}

echo "<form action=\"main.php?section=pn\" id=\"frm1\" method=\"post\" style=\"display: none;\">
			<input type=\"text\" name=\"Schreiben\" value=\"Schreiben\" />
			</form>
			<h2><a href=\"javascript:;\" onclick=\"javascript: document.getElementById('frm1').submit()\">Nachricht schreiben</a></h2>";
//echo "<h2><a href=\"main.php?section=pn\">Nachricht schreiben</a><h2>";
//<p><input type=button style="font-family: Verdana; font-size: 8pt" onClick="window.location.href='main.php?section=pn'" value="Nachricht schreiben"></p>
$mypnsql = mysql_query("SELECT *
			FROM
				PN 
			WHERE 
				Empfängername = '$Username'
			ORDER BY Datum DESC ");
if (mysql_num_rows($mypnsql) != 0) {
echo "<div style=\"overflow: auto; height:470px; width:97%; scrollbar-base-color: black;\">";
	$frm=0;
	
	echo "<table border=\"0\"  style=\"float:left; margin-left:20px;\">";
	
	while ($pn = mysql_fetch_assoc($mypnsql)) {
		$ID1=$pn["ID"];
		$ID=$pn["ID"];
		$Datum=$pn["Datum"];
		$Betreff=$pn["Betreff"];
		$Sendername=$pn["Sendername"];
		
		echo"<tr>
				<form action=\"main.php?section=pn\" name=\"Checkform\" method=\"post\" >
				<td><input type='checkbox' name='add_checkbox[]' value='$ID1' style=\"display: inline;\"></td>
				
				<form action=\"main.php?section=pn\" id=\"$frm\" method=\"post\" >
				";
				if ('Ja'==$pn["gelesen"]) {	
					echo "<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" /></form>";
					echo "<td><p>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
					$Betreff </a>Von: $Sendername</p></td>";
				}
				if ('Nein'==$pn["gelesen"]) {
					echo "<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" /></form>";
					echo "<td><h2>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
					$Betreff </a>Von: $Sendername</h2></td>";
				}
				$frm++;	
		echo"</tr>";
	}
	echo " <tr>
				<td><input type=\"button\" value=\"löschen\"  onclick=\"javascript:SubmitCheckForm();\" name=\"button\"></td>
			</tr>";
	echo "</table>";
echo "</div>";
}
?>
	<script language="javascript">
function SubmitCheckForm()
        {
        frmCheckform        = document.Checkform;
        // assigh the name of the checkbox;
        var chks = document.getElementsByName('add_checkbox[]');
 
        var hasChecked = false;
        // Get the checkbox array length and iterate it to see if any of them is selected
        for (var i = 0; i < chks.length; i++)
        {
                if (chks[i].checked)
                {
                        hasChecked = true;
                        break;
                }
        }
        // if ishasChecked is false then throw the error message
        if (!hasChecked)
        {
                alert("Keine Nachricht zum löschen ausgwählt");
                chks[0].focus();
                return false;
        }
        // if one or more checkbox value is selected then submit the form
                booSubmit = confirm("Sicher das du diese Nachrichten löschen willst?");
                if(booSubmit == true)
                        frmCheckform.submit();
						
        }
 
</script>

</div>
</div>
 
Sorry aber in dem ganzen Code entdecke ich nicht wirklich was du vor hast.

Beschreibe doch einfach mal mit ein paar Worten etwa deutlicher welche Funktion(en) du ausführen willst.
 
Ich versuche eine Tabelle (PN) auzugeben welche Checkboxen und Nachrichtentitel anzeigen soll.
Das Problem ist das die Checkboxen nicht reagieren wenn ich den Button "löschen" anklicke.

Hier der relevante Teil der Tabelle:
PHP:
$mypnsql = mysql_query("SELECT *
            FROM
                PN 
            WHERE 
                Empfängername = '$Username'
            ORDER BY Datum DESC ");
if (mysql_num_rows($mypnsql) != 0) {
echo "<div style=\"overflow: auto; height:470px; width:97%; scrollbar-base-color: black;\">";
    $frm=0;
    
    echo "<table border=\"0\"  style=\"float:left; margin-left:20px;\">";
    
    while ($pn = mysql_fetch_assoc($mypnsql)) {
        $ID1=$pn["ID"];
        $ID=$pn["ID"];
        $Datum=$pn["Datum"];
        $Betreff=$pn["Betreff"];
        $Sendername=$pn["Sendername"];
        
        echo"<tr>
                <form action=\"main.php?section=pn\" name=\"Checkform\" method=\"post\" >
                <td><input type='checkbox' name='add_checkbox[]' value='$ID1' style=\"display: inline;\"></td>
                
                <form action=\"main.php?section=pn\" id=\"$frm\" method=\"post\" >
                ";
                if ('Ja'==$pn["gelesen"]) {    
                    echo "<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" /></form>";
                    echo "<td><p>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
                    $Betreff </a>Von: $Sendername</p></td>";
                }
                if ('Nein'==$pn["gelesen"]) {
                    echo "<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" /></form>";
                    echo "<td><h2>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
                    $Betreff </a>Von: $Sendername</h2></td>";
                }
                $frm++;    
        echo"</tr>";
    }
    echo " <tr>
                <td><input type=\"button\" value=\"löschen\"  onclick=\"javascript:SubmitCheckForm();\" name=\"button\"></td>
            </tr>";
    echo "</table>";
echo "</div>";
}
?>
    <script language="javascript">
function SubmitCheckForm()
        {
        frmCheckform        = document.Checkform;
        // assigh the name of the checkbox;
        var chks = document.getElementsByName('add_checkbox[]');
 
        var hasChecked = false;
        // Get the checkbox array length and iterate it to see if any of them is selected
        for (var i = 0; i < chks.length; i++)
        {
                if (chks[i].checked)
                {
                        hasChecked = true;
                        break;
                }
        }
        // if ishasChecked is false then throw the error message
        if (!hasChecked)
        {
                alert("Keine Nachricht zum löschen ausgwählt");
                chks[0].focus();
                return false;
        }
        // if one or more checkbox value is selected then submit the form
                booSubmit = confirm("Sicher das du diese Nachrichten löschen willst?");
                if(booSubmit == true)
                        frmCheckform.submit();
                        
        }
 
</script>

Das hier funktioniert zwar allerdings sind die Checkboxen verschoben/asynchron zu den Nachrichten. Das wird umso mehr Nachrichten da sind immer asynchroner.
PHP:
$mypnsql = mysql_query("SELECT *
			FROM
				PN 
			WHERE 
				Empfängername = '$Username'
			ORDER BY Datum DESC ");
if (mysql_num_rows($mypnsql) != 0) {
	$frm=0;
	echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"float:left;width:10px;\">";
	echo "<form action=\"main.php?section=pn\" name=\"Checkform\" method=\"post\" >";
	while ($pn = mysql_fetch_assoc($mypnsql)) {
		$ID1=$pn["ID"];
		echo"<tr><td><input type='checkbox' name='add_checkbox[]' value='$ID1' style=\"display: inline;\"></td></tr>";
	}
	
	echo "</form></table>";
	$mypnsql = mysql_query("SELECT *
			FROM
				PN 
			WHERE 
				Empfängername = '$Username'
			ORDER BY Datum DESC ");
	echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\">";
	while ($pn1 = mysql_fetch_assoc($mypnsql)) {
		$ID=$pn1["ID"];
		$Datum=$pn1["Datum"];
		$Betreff=$pn1["Betreff"];
		$Sendername=$pn1["Sendername"];
		$frm++;
		
		if ('Ja'==$pn1["gelesen"]) {
			
			echo "<tr><td><p>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">$Betreff </a>Von: $Sendername</p></td></tr>";
		}
		if ('Nein'==$pn1["gelesen"]) {
			echo "<tr><td><h2>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
			$Betreff </a>Von: $Sendername</h2></td></tr>";
		}
		echo "<form action=\"main.php?section=pn\" id=\"$frm\" method=\"post\" >";
			echo "<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" />";
			echo "</form>";
	}
	echo "</table>";
	echo "<input type=\"button\" value=\"löschen\"  onclick=\"javascript:SubmitCheckForm();\" name=\"button\">";
	//$_POST['checkedfields']
}
?>
	<script language="javascript">
function SubmitCheckForm()
        {
        frmCheckform        = document.Checkform;
        // assigh the name of the checkbox;
        var chks = document.getElementsByName('add_checkbox[]');
 
        var hasChecked = false;
        // Get the checkbox array length and iterate it to see if any of them is selected
        for (var i = 0; i < chks.length; i++)
        {
                if (chks[i].checked)
                {
                        hasChecked = true;
                        break;
                }
        }
        // if ishasChecked is false then throw the error message
        if (!hasChecked)
        {
                alert("Keine Nachricht zum löschen ausgwählt");
                chks[0].focus();
                return false;
        }
        // if one or more checkbox value is selected then submit the form
                booSubmit = confirm("Sicher das du diese Nachrichten löschen willst?");
                if(booSubmit == true)
                        frmCheckform.submit();
						
        }
 
</script>

Ich versuche quasi letztes Beispiel der Tabelle gleichmässig darzstellen so das die Checkboxen auf gleicher Höhe zu den Nachrichten stehen.
Entschuldigung für meine schlechte Formulierung des Problems und danke fürs drüberschauen.
 
Das form-Tag darf nicht innerhalb der Tabelle stehen, zumindest nicht innerhalb von <table> und </table>. Wenn schon dann muss es innerhalb eine Zelle stehen.

Außerdem ist es doch wohl ausreichend wenn du ein form-Tag erstellst und kannst dann aber mehrere Buttons und/oder Links nehmen.
 
Hab die form tags nun in die Zellen geschrieben. Das zeigt mir die Nachrichten bei Klick zwar an aber auch hier löscht es nicht die markierten(Checkboxen) Nachrichten. Zwar erscheinen die Allertmeldungen aber das Formular zum löschen ist leer.

PHP:
$mypnsql = mysql_query("SELECT *
            FROM
                PN 
            WHERE 
                Empfängername = '$Username'
            ORDER BY Datum DESC ");
if (mysql_num_rows($mypnsql) != 0) {
echo "<div style=\"overflow: auto; height:470px; width:97%; scrollbar-base-color: black;\">";
    $frm=0;
    
    echo "<table border=\"0\"  style=\"float:left; margin-left:20px;\">";
    
    while ($pn = mysql_fetch_assoc($mypnsql)) {
        $ID1=$pn["ID"];
        $ID=$pn["ID"];
        $Datum=$pn["Datum"];
        $Betreff=$pn["Betreff"];
        $Sendername=$pn["Sendername"];
        
        echo"<tr>
                <td>
					<form action=\"main.php?section=pn\" name=\"Checkform\" method=\"post\" >
					<input type='checkbox' name='add_checkbox[]' value='$ID1' style=\"display: inline;\">
					</form>
				</td> ";
				
				
			if ('Ja'==$pn["gelesen"]) {    
				echo "
					<td>
						<form action=\"main.php?section=pn\" id=\"$frm\" method=\"post\" >
						<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" />
						<p>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
						$Betreff </a>Von: $Sendername</p>
						</form>
					</td>";
			}
			if ('Nein'==$pn["gelesen"]) {
				echo "
				<td>
					<form action=\"main.php?section=pn\" id=\"$frm\" method=\"post\" >
					<input type=\"text\" name=\"ID\" value=\"$ID\" style=\"display: none;\" />
					<h2>$Datum <a href=\"javascript:;\" onclick=\"javascript: document.getElementById('$frm').submit()\">
					$Betreff </a>Von: $Sendername</h2>
					</form>
				</td>";
			}
			$frm++;    
        echo"</tr>";
    }
    echo "<tr>
			<td>
				<input type=\"button\" value=\"löschen\"  onclick=\"javascript:SubmitCheckForm();\" name=\"button\">
			</td>
		</tr>";
    echo "</table>";
	echo "</div>";

Hier das soll nach dem "löschen" passieren:
PHP:
if ('POST' == $_SERVER['REQUEST_METHOD']) {
	if (isset($_POST['add_checkbox'])) {
		$add_checkbox=$_POST['add_checkbox'];
		$ids = implode(",", $add_checkbox);
		mysql_query("DELETE FROM PN WHERE ID IN ($ids)");
	}
 

Neue Beiträge

Zurück