如何将JavaScript变量的数据传递给另一个php页面?

我有两页: test.php </ strong>和 backend.php </ strong>。</ p>

test.php </ strong>有三张图片,点击后会将用户带到 backend.php </ strong>。 我想点击图片的src显示在 backend.php </ strong>上。 我试图通过JavaScript和Ajax来完成这项任务,但图像的src没有出现在 backend.php </ strong>上。 下面给出了相同的代码:</ p>

test.php:</ strong> </ p>

 &lt;?php 
session_start();
?&gt;

&lt; html&gt;
&lt; head&gt;
&lt; script src =“jquery-1.9.1.js”&gt;
&lt; / script&gt;
\ n&lt; script&gt;
函数clickIt(data){
$ .ajax({
url:'backend.php',
data:{“imgsrc”:data},
type:'post',

成功:功能(res){
alert(res.message);
}
});
}
&lt; / script&gt;
&lt; / head&gt;

&lt; body&gt ;
&lt; a href =“backend.php”&gt;
&lt; img onclick =“clickIt(this.src)”src =“img1.jpg”/&gt;
&lt; / a&gt;
&lt; ; a href =“backend.php”&gt;
&lt; img onclick =“changeIt(this.src)”src =“img2.jpg”/&gt;
&lt; / a&gt;
&lt; a href = “backend.php” &GT;
&lt; img onclick =“changeIt(this.src)”src =“img3.jpg”/&gt;
&lt; / a&gt;
&lt; / body&gt;
&lt; / html&gt;
</ code> < /pre>
nn

backend.php:


nn
<?php
session_start();
?&gt;

&lt;?php
echo $ _POST ['imgsrc'];
echo'&lt; a href =“test.php”&gt;返回&lt; / a&gt;';
?&gt;
</ 代码> </ pre>

我可能做错了什么?</ p>
</ div>

展开原文

原文

I have two pages: test.php and backend.php.

test.php has three images which when clicked takes the user to backend.php. I want the src of the image clicked to be displayed on backend.php. I am trying to achieve this task via JavaScript and Ajax but the src of the image doesn't appear on backend.php. Code for the same are given below:

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>';
?>

What am I possibly doing wrong?

dongzhao5834
dongzhao5834 是的,res.message是未定义的,因为res是一个字符串,其中包含您在PHP中回显的数据。res本身包含您想要的输出。
4 年多之前 回复
dp9599
dp9599 check..i已经发布了以下答案
4 年多之前 回复
dongzhi9457
dongzhi9457 达拉,你能告诉我一个正在运行的代码吗?
4 年多之前 回复
drztpx8735
drztpx8735 Felix,alert(res.message)仅用于显示成功消息。但目前显示未定义。不,我没试过。
4 年多之前 回复
dsh77114
dsh77114 如果你希望页面在图像陈列后重定向到backend.php..并在那里显示图像..在这种情况下,不要使用ajax..usewindow.location.href进行重定向,并将图像源与url一起传递...否则你也可以在控制台中看到图像src..
4 年多之前 回复
dongzi1397
dongzi1397 你为什么要做警报(res.message)?消息应该来自何处?你尝试过警报(res)吗?或者更好:console.log(res)。
4 年多之前 回复

2个回答



试试这个; </ p>

HTML:</ p>

 <  code>&lt; body&gt; 
&lt; a href =“javascript:void(0);”&gt;
&lt; img onclick =“clickIt(this.src)”src =“img1.jpg”/&gt; \ n&lt; / a&gt;
&lt; a href =“javascript:void(0);”&gt;
&lt; img onclick =“changeIt(this.src)”src =“img2.jpg”/&gt; \ n&lt; / a&gt;
&lt; a href =“javascript:void(0);”&gt;
&lt; img onclick =“changeIt(this.src)”src =“img3.jpg”/&gt; \ n&lt; / a&gt;
&lt; / body&gt;
</ code> </ pre>

Jquery:</ p>

  function clickIt(data)  {
window.location.href ='backend.php?imgsrc ='+ data; //重定向到backend.php
}
</ code> </ pre>

在backend.php </ p>

 &lt;?php \  n echo $ _GET ['imgsrc'];  //使用$ _GET 
echo'&lt; a href =“test.php”&gt;返回&lt; / a&gt;';
?&gt;
</ code> </ pre>
</ div>

展开原文

原文

Try this;

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>';
?>

dongmuzhan4705
dongmuzhan4705 感谢Dhara,这符合我的目的。
4 年多之前 回复




  1. 标签的点击事件未触发,因为标签在标记点击事件被触发之前将
    page带到后端页面。 只需从每行中删除标记即可解决此问题。 </ li>
  2. 由于您没有以json格式回显响应,因此无法以res.message的形式访问ajax响应。 您可以简单地从res变量访问响应</ li>
  3. 同时将函数名称更改为changeIt to clickIt,因为您已定义函数clickIt </ li>
    </ ol>

    //仅使用res
    success:function(res)
    {
    alert(res); </ p>

    } </ p>

     &lt;  img onclick =“clickIt(this.src)”src =“img1.jpg”/&gt; 
    &lt; img onclick =“clikcIt(this.src)”src =“img2.jpg”/&gt;
    &lt; img onclick =“clickIt(this.src)”src =“img3.jpg”/&gt;
    </ code> </ pre>
    </ div>

展开原文

原文

  1. Click event of tag is not firing because tag takes the page to backend page before tag click event gets fired. You can resolve this problem simply by removing the tag from each line.
  2. You cannot access ajax response as res.message as you haven't echo the response in json format. You can access response simply from res variable
  3. Also change the function name to changeIt to clickIt as you have defined function has clickIt

// use only res success: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"/>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问