# URL per LINK übergeben (Mit Ajax und JQuery)



## RoterEstilete (8. Dezember 2010)

Hallo Leute,

ich verzweifel bald und google hilft mir nicht weiter.

Ich habe eine AJAX Abfrage. Die liefert mir eine Tabelle zurück. Funktioniert auch alles.
In der Tabelle sind Links vorhanden. Diese werden dynamisch in der Datei erzeugt und in die Tabelle geschrieben die vom Ajax abgefragt wird.

Die Links sehen so aus: index.php?var=1&var=3&var=3

Ich möchte diese URL per klick auf einen LINK über Ajax an eine weitere Datei schicken. Und genau das klappt bei mir nicht. Vorallem, wenn das geschehen ist soll die Abfrage der Tabelle ERNEUT durchgeführt werden weil der Link einfluss auf den Inhalt der Tabelle hat.

Also kurz gesagt:
Lade Seite ~> Tabelle mit Links wird von Ajax abgerufen
Klicke auf Link ~> Daten werden per Ajax an PHP-Script gesendet und in Datenbank gespeichert und anschließend soll die Tabelle mit Links neu geladen werden


Eventuell kann mir jemand helfen. Ich bedanke mich jetzt schoneinam******


----------



## schogun (8. Dezember 2010)

Oh, falschen Nick verwendet. Doof das dort jetzt Gastzugang steht!

Also, *Der Threadersteller bin ich*. Habe beim Thread erstellen einen falschen Nickname angegeben.


Und warum daunten jetzt die ****** stehen? Keine Ahnung. Hat durch einen Tippfehler der Badwordfilter ausgelöst?


----------



## Quaese (8. Dezember 2010)

Hi,

ohne weitere Informationen wird es eine Raterei, aber ich versuche es einmal.

Voraussetzung:
Du bindest das click-Event über die Methode *bind* an die Links in der Tabelle. Wird die Tabelle aktualisiert, werden die Ereignisse nicht mehr ausgeführt.

Lösung:
Verwende statt *bind* die Methode live.

Ciao
Quaese


----------



## schogun (8. Dezember 2010)

Mahlzeit,

eventuell hab ich mich so spät in der nacht wirklich doof ausgedrückt 

Die Hauptdatei sieht so aus:

```
<script type="text/javascript">
$(document).ready(function() {
 $("#content").load("ajax/ajax.php");
});
</script>

<div id="content"></div>
```

Die ajax.php datei sieht so aus:

```
//Verbindung zur Datenbank, die Abfrage und wie sich $a,... berechnen schenk ich mir jetzt

echo "<table>";

while($row = mysql_fetch_array($select_daten))
{
 echo "
 <tr>
  <td>". $row["name"] ."</td>
  <td><a href=\"index.php?var=". $a ."&var2=". $b ."&var3=". $c ."\">". $row["name"] ."</a></td>
 </tr>
 "; 
}

echo "</table>";
```

So. Das funktioniert auch alles. Die Tabelle wird beim Laden der Hauptseite ausgegeben und die Links werden auch angezeigt.

Jetzt zu meinem Problem. Ich möchte die Links die in ajax.php generiert werden, per AJAX an eine weitere Datei senden, damit die variablen per Mausklick in eine datenbank geschrieben werden. Und das bekomme ich nicht hin, gar nicht 
Ich weiß mir mir Live und bind auch nicht zu helfen...


----------



## Quaese (8. Dezember 2010)

Hi,

du kannst mit *live* ein Event an Elemente binden, auch für zukünftige Elemente des Dokuments.

So könntest du beispielsweise click-Handler für die Links innerhalb der Tabelle im Element mit der ID *content* definieren. Dort liest du die URL aus, extrahierst daraus die Parameter und führst den Ajax-Request aus.

Beispiel:

```
<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_latest.js" type="text/javascript"></script>
<script type="text/javascript">
  <!--
$(document).ready(function() {
  $("#content").load("ajax/ajax.php");

  $('#content table a').live('click', function(evt){
    evt.preventDefault();
    var intPos = this.href.indexOf("?");
    var strUrl = this.href.substring(0, intPos);
    var strData = this.href.substr(intPos+1, this.href.length);

    $.ajax({
      url: strUrl,
      method: 'post',
      data: strData,
      success: function(msg){
      	$('#wrapper_id').html(msg);
      }
    });
  });
});

 //-->
</script>
</head>
<body>
<div id="content"></div>
<div id="wrapper_id"></div>
</body>
</html>
```
Ciao
Quaese


----------

