2016-05-13 5 views
1

Ich habe zwei Seiten: test.php und backend.php.Wie übergebe ich Daten einer JavaScript-Variablen an eine andere PHP-Seite?

test.php hat drei Bilder, die, wenn führt den Benutzer zu backend.php geklickt. Ich möchte, dass die Quelle des Bildes auf backend.php angezeigt wird. Ich versuche, diese Aufgabe über JavaScript und Ajax zu erreichen, aber die Quelle des Bildes erscheint nicht auf Backend.php.

test.php:

<?php 
    session_start(); 
?> 

<html> 
    <head> 
     <script src="jquery-1.9.1.js"> 
     </script> 

     <script> 
      function clickIt(data){ 
       $.ajax({ 
          url: 'backend.php', 
          data: {"imgsrc":data}, 
          type: 'post', 
          success:function(res){ 
           alert(res.message); 
          } 
       }); 
      } 
     </script> 
    </head> 

    <body> 
     <a href="backend.php"> 
      <img onclick="clickIt(this.src)" src="img1.jpg"/> 
     </a> 
     <a href="backend.php"> 
      <img onclick="changeIt(this.src)" src="img2.jpg"/> 
     </a> 
     <a href="backend.php"> 
      <img onclick="changeIt(this.src)" src="img3.jpg"/> 
     </a> 
    </body> 
</html> 

backend.php:

<?php 
    session_start(); 
?> 

<?php 
    echo $_POST['imgsrc']; 
    echo '<a href="test.php">Back</a>'; 
?> 

Was bin ich möglicherweise falsch machen Code für die gleiche sind unten angegeben?

+0

Warum sind Sie 'alert (res.message) tun'? Woher soll "Nachricht" kommen? Hast du 'alert (res)' versucht? Oder besser: 'console.log (res)'. –

+1

wenn Sie möchten, dass die Seite nach image clicck in die backend.php umleitet..und das Bild dort angezeigt wird..in diesem Fall benutzen Sie nicht ajax..use window.location.href für die Weiterleitung und übergeben Sie auch die Bildquelle zusammen mit der URL ... andernfalls Sie können auch Image src in der Konsole sehen. –

+0

Felix, 'alert (res.message)' gibt nur eine Erfolgsmeldung. Aber momentan wird es undefined angezeigt. Nein, ich habe sie nicht ausprobiert. –

Antwort

0

Versuchen Sie dies;

HTML:

<body> 
    <a href="javascript:void(0);"> 
     <img onclick="clickIt(this.src)" src="img1.jpg"/> 
    </a> 
    <a href="javascript:void(0);"> 
     <img onclick="changeIt(this.src)" src="img2.jpg"/> 
    </a> 
    <a href="javascript:void(0);"> 
     <img onclick="changeIt(this.src)" src="img3.jpg"/> 
    </a> 
</body> 

JQuery:

function clickIt(data){ 
    window.location.href = 'backend.php?imgsrc='+data; // redirect to backend.php 
} 

In backend.php

<?php 
    echo $_GET['imgsrc']; // use $_GET 
    echo '<a href="test.php">Back</a>'; 
?> 
+0

Danke Dhara, das passt zu meinem Zweck. –

0
  1. Click-Ereignis von Tag feuert nicht, weil Tag die Seite Backend nimmt Seite vor dem Tag click event get s gefeuert. Sie können dieses Problem lösen, indem Sie einfach das Tag aus jeder Zeile entfernen.
  2. Sie können nicht auf AJAX-Antwort als res.Message zugreifen, da Sie die Antwort im JSON-Format nicht geantwortet haben. Sie können Antwort Zugriff einfach aus res Variable
  3. auch den Funktionsnamen zu Clickit zu changeit ändern, wie Sie definiert haben Funktion hat Clickit

// nur verwenden res Erfolg: function (res) { alert (res);

}

<img onclick="clickIt(this.src)" src="img1.jpg"/> 
<img onclick="clikcIt(this.src)" src="img2.jpg"/> 
<img onclick="clickIt(this.src)" src="img3.jpg"/> 
Verwandte Themen