Variable in Datenbank schreiben

serul

Grünschnabel
Hallo zusammen,

ich bin in javascript garnicht fit und bräucht ein wenig Hilfestellung.

Es werden mehrere Links auf einer Seite generiert die jeweils alle die selber id="idmessage" besitzen. In diesem Falle sind es beispielhalber 3 Links. Wenn ich nun auf den ersten link Join klicke, wird wie erwartet, die erste messageid an im_in.php übertragen (javascript funktion), wenn ich allerdings auf den zweiten link klicke, wird wieder die erste messageid übertragen da die links alle die gleiche Id haben.

Leider weiß ich nicht wie ich das dynamisch mit den Ids regeln kann, dass die funktion immer weiß wenn ich zum beispiel nur den zweiten Link angeklickt habe, dass sie auch die messageid von dem zweiten link an im_in.php übergeben soll.

Hoffe das ist verständlich... Wäre für jeden Tip sehr dankbar!

Relevanter code:
Code:
<script type="text/javascript">

    function join_invitation()
        {
            var message_id = $("#idmessage").val();
            alert(message_id);
            $.get("im_in.php?idmessage="+message_id, function(result) {
                if (result == 0)
                {
                        $("#warning").html("");
                        $("#info").html('');
                }

                else if (result == 1)
                {
                        $("#info").html('Join in erfolgreich');
                        $("#warning").html('');

                }
                });


        }
</script>

<?php

//$id_message wird aus der Datenbank geholt, könnte also so ungefähr aussehen:
$id_message = array(0 => 99 1 => 301 2 => 2);

for ($i = 0; $i <= count($id_message); $i++) {
    echo '<a href=""><input type="hidden" id="idmessage" value="'.$id_message.'">join</a>';
}
?>
 
Hi,

IDs müssen innerhalb eines Dokuments eindeutig sein. Ist das nicht der Fall, wird immer auf das erste Element mit der ID zugegriffen.

Als Lösung könntest du die IDs eindeutig machen, dafür Klassen für die input- und a-Elemente vergeben. Im onload-Element erhalten die Links onclick-Handler, die den Versand des darin liegenden Inputfeldes veranlassen.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script src="jquery-1.5.min.js" type="text/javascript"></script>
<script type="text/javascript">
  <!--
function join_invitation($this){
  var message_id = $this.val();
  //alert(message_id);

  $.get("im_in.php?idmessage="+message_id, function(result){
    if (result == 0){
      $("#warning").html("");
      $("#info").html('');
    }else if (result == 1){
      $("#info").html('Join in erfolgreich');
      $("#warning").html('');
    }
  });
}

$(function(){
  // Links mit onclick-Handler auszeichnen
  $('.msg_lnk').click(function(evt){
    evt.preventDefault();
    join_invitation($(this).find('.idmessage:first'));
  });
});

 //-->
</script>
</head>
<body>
<?php

//$id_message wird aus der Datenbank geholt, könnte also so ungefähr aussehen:
$id_message = array(0 => 99, 1 => 301, 2 => 2);

for ($i = 0; $i <= count($id_message); $i++) {
    echo '<a class="msg_lnk" href=""><input type="hidden" class="idmessage" id="idmessage_'.$i.'" value="'.$id_message.'">join</a>';
}
?>
</body>
</html>
Ciao
Quaese
 
Oh man, Quaese, du bist mein Held! Muss wohl noch viel Javascript lernen :P. Tausend Dank für die schnelle super Lösung :) :)
 
Zurück