SQL und Javascript

EuroCent

Klappstuhl 2.0
Huhu ich mal wieder xD

Folgendes Problem

Ich möchte bei dem Script:

Code:
<script language="JavaScript">
<!--
function pmdelete(pmid) {
	alert('Nachricht wurde gelöscht!');
	location.reload();
}
//-->
</script>

erreichen das wenn die Meldung alert(); gekommen ist das in dem moment ein DELETE Befehl an die Datenbank gesendet wird der den jeweiligen Eintrag löscht

Beispiel:

PHP:
<script language="JavaScript">
<!--
function pmdelete(pmid) {
	alert('Nachricht wurde gelöscht!');
	location.reload();
}
//-->
</script>
<?php
$sql = mysql_query("SELECT * FROM pms WHERE status=1") or die(mysql_error());
while($row = mysql_fetch_array($sql)) {

	$pmid = $row['pmid'];

?>
<tr>
<td class="tablea" align="left" width="40%"><span class="smallfont"><b><?php echo $row['subject']; ?></b></span></td>
<td class="tablea" align="left" width="40%"><span class="smallfont"><b><?php echo $row['from_userid']; ?></b></span></td>
<td class="tablea" align="center" width="20%"><span class="smallfont"><b><img src="cancel.png" alt="Nachricht L&ouml;schen" border="0" onclick="pmdelete(<?php echo $pmid; ?>);" /> [&raquo;] [&laquo;]</b></span></td>
</tr>
<?php
}
?>

Das Problem jedoch ist wenn ich im Script-Tag ein PHP-Code einbringe dann passiert rein garnix

hatte es schon einmal so:

PHP:
<script language="JavaScript">
<!--
function pmdelete(pmid) {
	alert('Nachricht wurde gelöscht!');
        <?php mysql_query("DELETE FROM pms WHERE pmid='".$pmid."'"); ?>
	location.reload();
}
//-->
</script>
<?php
$sql = mysql_query("SELECT * FROM pms WHERE status=1") or die(mysql_error());
while($row = mysql_fetch_array($sql)) {

	$pmid = $row['pmid'];

?>
<tr>
<td class="tablea" align="left" width="40%"><span class="smallfont"><b><?php echo $row['subject']; ?></b></span></td>
<td class="tablea" align="left" width="40%"><span class="smallfont"><b><?php echo $row['from_userid']; ?></b></span></td>
<td class="tablea" align="center" width="20%"><span class="smallfont"><b><img src="cancel.png" alt="Nachricht L&ouml;schen" border="0" onclick="pmdelete(<?php echo $pmid; ?>);" /> [&raquo;] [&laquo;]</b></span></td>
</tr>
<?php
}
?>

Aber der Ansatz ist ja eigentlich verkehrt oder?

Wäre euch für die Hilfe sehr dankbar
 
Hi,

JavaScript ist eine clientseitige Scriptsprache - du hast damit also keinen unmittelbaren Zugriff auf die Datenbank (serverseitig).

Es gibt jedoch Möglichkeiten, einen Zugriff zu ermöglichen. Die wohl bekannteste dürfte AJAX sein. Mit dieser Technologie kann ein Request an den Server gesendet werden. Dieser kann dort ein Script anstossen, welches das Eintragen, Abfragen oder Löschen ausführt. Beispiele hierfür solltest du hier im Forum ausreichend finden.

Ciao
Quaese
 
hmm... danke für die antwort

Mit Ajax hab ich wenig am hut LEIDER

Hoffe ich werd hier durch etwas finden
 
Hi!

Eine Alternative zu AJAX könnte so aussehen.

Statt Javascript benutz doch gleich PHP.
Deine Grafik zum löschen umgibst du einfach mit einem Link der auf die gleiche Seite verweist. Hier werden 2 Parameter angehängt: 1.) cmd= delete und 2.) id=pmid.
Nun fragst du vor dem Laden ab, ob cmd == delete ist. Wenn ja wird gelöscht.

PHP:
<?php
if($_REQUEST["cmd"] == 'delete' && $_REQUEST["id"] > 0) {
 mysql_query("DELETE FROM pms WHERE pmid=".$_REQUEST["id"] );
 echo "Nachricht Nr. ".$_REQUEST["id"] ." gelöscht!";
}

$sql = mysql_query("SELECT * FROM pms WHERE status=1") or die(mysql_error());
while($row = mysql_fetch_array($sql)) {
...
$html .= '<td class="tablea" align="center" width="20%"><span class="smallfont"><b><a href="seite.php?cmd=delete&id='.$row['pmid'].'<img src="cancel.png" alt="Nachricht L&ouml;schen" border="0"  /> [&raquo;] [&laquo;]</a></b></span></td>';
...
echo $html;
}
?>

Natürlich könntes du auch hier JS einsetzten indem du statt
PHP:
location.reload();
in deine Funktion
PHP:
location.href = "seite.php?cmd=delete&id" + pmid;
schreibst.

Oder eben AJAX, hier eine kleine Einführung:
http://webkompetenz.blogspot.com/2007/05/tutorial-ajax-5.html

Viele Grüße,
Jacka
 

Neue Beiträge

Zurück