jQuery Variable übergeben?

lisali

Erfahrenes Mitglied
Hallo,

ich hab folgendes JQuery script:

Code:
<script type="text/javascript">
$(function() {
$(".delete").click(function() {
var id = $(this).attr("id");
var dataString = 'id='+ id;
var parent = $(this).parent();
	
$.ajax({
   type: "POST",
   url: "js/ajax.php",
   data: dataString,
   cache: false,

   success: function(){ parent.slideUp('slow', function() { $(this).remove();}); }
 });

return false;
	});
});
</script>

Und dies ist die ajax.php:

PHP:
<?
require_once ( '../config.php' );

if ($_POST['id'])
{
$id = mysql_escape_String($_POST['id']);
if ($all){ mysql_query("UPDATE `messages` SET `uid_delete`='1',`status`='1' WHERE `id`='".$id."'"); }
else { 
list ($cr) = mysql_fetch_row(mysql_query("SELECT `sid` FROM `messages` WHERE `id`='".$id."'"));
mysql_query("UPDATE `messages` SET `uid_delete`='1',`status`='1' 
				   WHERE `uid`='".$_SESSION['id']."' AND `sid`='".$cr."'"); }
}
...

Erstmal wollte ich fragen, ob es möglich ist, dass er nicht nach $_POST[id] guckt bzw wo ich das ändern müsste, damit er nach was anderem guckt oder wird dann die id nicht mehr übergeben?

Und wie kann ich die Variable $all = true; übergeben?
 
Code:
var dataString = 'id='+ id+'&test='+test;
jetzt wird id und test übergeben.
Das ganze funktioniert als ob du es oben in die browser adresszeile eingibst.
 
Okay und wo im HTML setze ich dann in dem Beispiel diese test-Variable?
Bei mir wird die id Variable so übergeben:

Code:
<a href='#' id='".$row['message_id']."' class='delete fr colorRed'>x</a>

Wie kann oder könnte ich das erweitern, damit er auch für "test" eine Variable annimmt?
 
Kenne mich mit jquery nicht im detail aus und verstehe die Frage auch nicht ganz aber versuch es doch mal genau so nur halt mit der variable die du verwenden willst.
Ansonsten jquery dokumentation kann helfen.
 
Da wurde ich bei dem speziellen Problem auch nicht schlauer.

Die Frage war nur wie und wo ich deine beispielhafte test-Variable übergebe.
 
speziell? das is mehr ein triviales problem das bestimmt irgendwo in der doku beschrieben ist ;)
Adaptier das ganze doch mal von id...
Code:
var id = $(this).attr("id");
var dataString = 'id='+ id;
-->
Code:
var test = $(this).attr("test");
var id = $(this).attr("id");
var dataString = 'id='+ id + '&test='+ test;
und noch einen link dazu anlegen...
Einfach ein wenig experimentieren ;)
 
Das geht aber nicht. Er sucht ja dann nach dem Attribut "id" und "test".

Und "test" gibt es als HTML Attribut gar nicht, soviel ich weiß. Und ich muss den einen Link benutzen in meinem Fall.
 
Erstmal wollte ich fragen, ob es möglich ist, dass er nicht nach $_POST[id] guckt bzw wo ich das ändern müsste
Indem du was anderes hinschreibst :confused:
PHP:
if ($_POST['id'])
Das besagt das er im POST Array nach einem Key namens id suchen soll. Btw. wäre isset etwas schöner.

oder wird dann die id nicht mehr übergeben?
Das eine hat mit dem anderen garnichts zu tun.
Es läuft doch vereinfacht gesagt so ab:

1. $(".delete").click(function() {
Javascript bemerkt das auf ein Element mit der Klasse delete geklickt wurde.
2. var id = $(this).attr("id");
Eine Javascript variable wird festgelegt und als Wert bekommt sie den Wert der beim angeklickten Element bei ID steht.
3. var dataString = 'id='+ id;
Eine Weitere Javascript Variable wird festgelegt die als Wert den string id= und der Wert der variable id enthält.

Diese letzte Variable wird jetzt als POST request an js/ajax.php gesendet. Ob PHP sich jetzt für die im request enthaltene id interessiert oder nicht ist JavaScript sowas von egal.

Und wie kann ich die Variable $all = true; übergeben?
Die Frage war nur wie und wo ich deine beispielhafte test-Variable übergebe.

Du kannst den Datastring zusammen setzen aus was auch immer due grade Lust hast.
Es muss sich in keinster Weise auf das angeklickte Element beziehen.
Du könntest beipielsweise ein Javascript Array anlegen und dort einen benötigten Wert auslesen.

Das Problem hat eigentlich aber nicht viel mit PHP zu tun.
Und für deinen Ajax aufruf gibt es eine meine Meinung nach einfachere Funktion : $.post()
 

Neue Beiträge

Zurück