[Ajax] Variable übergeben geht nicht

PHPGuy

Mitglied
Hallo ,
ich hätte da noch eine Frage , undzwar habe ich mit ajax/jquery eine Datei geladen [load funtkion].
und dann habe ich in der Einen Datei inline javascript benutzt um eine php Variable [$row->familly] an die geladene Datei zu übergeben.
jscript.js
PHP:
<script>
setInterval(function() {
                $('#loaddiv').load('test.php')
            },1000);
$.post(test.php , { familly: familly }, function (result) {                     alert("xd");
 });
</script>

Und das ist die Datei wo die Variable erstellt wird.
index.php
PHP:
<?php
// Hier oben steht eigentlich noch was .
echo '<script>';
   echo 'var familly = "'.$row->member.'";';
echo '</script>';  
?>

Wenn ich die Variable mit Javascript aufrufe funktioniert alles einfwandfrei , die Variable wird also erstellt , nur wird Sie nicht mit $.post an test.php übergeben.

test.php
PHP:
<?php
$familly = $_POST['familly'];
echo $familly;
?>

Wäre bei einer schnellen Antwort sehr dankbar :)
 
Zuletzt bearbeitet:
Also dein eigentliches Problem ist die Übergabe an dein PHP-Skript mittels AJAX?

Die Variable exisitiert und besitzt den richtigen Wert, sagst du.

Aber bei PHP kommt sie nicht an. Wie prüfst du denn, ob sie ankommt? Du gibst den Wert zwar wieder per [phpf]echo[/phpf] aus, aber in deinem JS rufst du nur alert("xd"); auf.

Müsste es nicht so lauten:
Javascript:
// Nur so am Rande: Soll 'familly' 'Familie' bedeuten? Dann nur mit einem 'l' ;)

$.post("test.php", {familly: familly}, function (result) {
  alert(result);
});
Du hast außerdem die Anführungszeichen um "test.php" vergessen.
 
Hi PHPGuy,

warum packst du die Variable bzw. den Wert dieser nicht in ein input und versteckst dies? Wäre auf jeden Fall die elegantere Lösung.

PHP:
<?php
// Hier oben steht eigentlich noch was .
echo '<input type="hidden" id="DeinFeld" value="'.$row->member.'">';
?>

Die Variable kannst du dir dann per Ajax aus dem Input Feld herausholen. Das geht so:

Code:
<script type="text/javascript">
var family = $('#DeinFeld').val();
</script>

Wenn du dann load nutzt, dann übergeb die ID doch einfach per GET. Das geht so:

Code:
$('#loaddiv').load('test.php?member=' + family)

Und im PHP greifst du dir die Variable dann so ab:
PHP:
<?php

$member = strip_tags($_GET['member']);
echo $member;

?>

Vergiss dabei nicht, diese Variable zu entschärfen, siehe beispiel oben.

Hoffe ich konnte helfen.

Gruß
Chans
 
Zuletzt bearbeitet:
Ok , habs versucht , ging leider nicht :(
Gibt es keine andere Methode die Variable an test.php zu senden ?
Die Variable $row->member muss nur bei test.php ankommen , dann geht alles.

LG
 
Nein gibt es nicht. Zeige doch mal deine jetztige Lösung, weil der Fehler sicher bei Dir liegt, denn jquery funktioniert einwandfrei. Was sagt denn die Fehlerkonsole?
 
PHP:
<?php
// Hier steht noch was
$familiy = mysql_query("SELECT * FROM family WHERE name='$name'");
while($row = mysql_fetch_object($family)) {
echo '<script>';
   echo 'var xd = "'.$row->name.'";';
?>
setInterval(function() {
                $('#display').load('show.php?atuser=' + xd)
            },1000);
<?php
echo '</script>';
// Hier sthet auch noch was

SO ich habe jetzt wieder mal ajax in PHP benutzt , inline PHP also.
Das läuft jetzt viel viel besser , nur ist jetzt noch ein Problem aufgetaucht .
Da das ganze jede Sekunde lädt , wird die Div "display" nun immer weider weiß und dann zeigt es den Inhalt an , als ob Jemand die ganze Zeit f5 drücken würde ...Und das die ganze Zeit.
Vllt. wegen der While schleife ?
Ich brauche Hilfe , Jungs :(

LG
 
PHP:
<?php 
// Hier steht noch was 
$familiy = mysql_query("SELECT * FROM family WHERE name='$name'"); 
while($row = mysql_fetch_object($family)) { 
echo '<script>'; 
   echo 'var xd = "'.$row->name.'";'; 
?> 
setInterval(function() { 
                $('#display').load('show.php?atuser=' + xd) 
            },1000); 
<?php 
echo '</script>'; 
// Hier sthet auch noch was


einfach das setInterval 1000 weglassen dann geht's:p
oder von 1000 auf 5000 erhöhen
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück