2016-05-13 66 views
1

我有两个页面:test.phpbackend.php如何将JavaScript变量的数据传递给另一个php页面?

test.php的具有点击它时,将用户带到backend.php三个图像。我想要点击的图像的src被显示在backend.php。我试图通过JavaScript和Ajax实现此任务,但图像的src不出现在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>'; 
?> 

什么我可能做错了吗?

+0

你为什么要这么做'警报(res.message)'? “消息”应该来自哪里?你有没有尝试'警报(res)'?或者更好:'console.log(res)'。 –

+1

如果你想页面重定向到backend.php后图像clicck..and显示图像那里..在这种情况下不使用ajax..use window.location.href重定向,并传递图像源与URL ...否则你也可以在控制台中看到图像src .. –

+0

Felix,'alert(res.message)'只显示成功消息。但目前它显示未定义。不,我没有尝试过。 –

回答

0

试试这个;

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 
} 

在backend.php

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

感谢Dhara,这适合我的目的。 –

0
  1. 点击标签的事件不触发,因为标签采用 页到后端标签点击事件获取前的页面被解雇了。只需从每行删除标记即可解决此问题。
  2. 您不能以res.message的形式访问ajax响应,因为您没有以json格式回显响应。您可以从资源变量
  3. 简单地访问响应也改变了函数名的changeit到clickIt因为你已经定义的函数具有clickIt

//只使用水库 成功:函数(RES) { 警报( 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"/> 
相关问题