单击即可将JS变量发送到PHP

时间:2013-10-24 00:40:14

标签: javascript php jquery onclick send

我有这个JS函数,我正在寻找最简单的方法将变量发送到php并让php将数组返回给我的JS。我有第二部分,我只需要帮助发送变量。这是我的职责:

 function myEvent(){
        //console.log(uploaded);
            var length = uploaded.length;
            var content = document.getElementById("Profile");
            if(length == 0){
                content.innerHTML = '<p style="text-align:center"><b> You uploaded no events. </b></p>';

            }
             else {
                content.innerHTML = " ";
            for(var i=0; i<length;i++){
                var entry = document.createElement('li');
                var EID = uploaded[i][0];
                entry.innerHTML= '<a href="eventList2.html">'+uploaded[i][1]+'</a>​';
                content.appendChild(entry); 
                }
                return false;
            }
    }

我希望每次点击链接时都能向PHP脚本发送一个唯一ID的EID。

有任何帮助吗?我使用的是Jquery,但我对它不太熟悉。如果只有使用JS的选项,我会非常感激。

3 个答案:

答案 0 :(得分:1)

确保您使用firebug或类似的东西查看此内容以查看返回的结果,在jquery done函数中,您可以为数组执行数据[0]等

HTML

<!DOCTYPE html>
 <html>
  <head>
   <title>JQuery Test</title>
   <meta charset="utf-8">
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
   <script src="myjs.js"></script>
  </head>

  <body>
   <button id="sendData">Send Data</button>
  </body> 
 </html>

JS

$(document).ready (function (){
    $("#sendData").on ("click", function (){
             jQuery.ajax ({
                url:  "index.php",
                type: "POST", 
                data: {returnArray: 1}
            }).fail (function (){
                console.log ("failed");
            }).done (function (data){
                console.log (data);
            });
    });
 });

PHP

 if (isSet ($_POST ['returnArray']))
 {
     $a = array ("a", "b", "c", "d");

     header('Content-type: application/json');
     echo json_encode ($a);

     exit;
 }

我相信你可以解决这个问题......展示一些努力......并且不要害怕问你是否仍然不理解..只要你尝试。

答案 1 :(得分:1)

你可以使用Ajax来做到这一点。还有另一种非常简单的方法可以将数据发送到任何服务器上的PHP脚本(相同域或不相同),同时使PHP脚本与您的页面交互

首先创建一个脚本标记:

var tag = document.createElement('script');

该标记的src将是将接收变量的php脚本的URL:

var myVar = 'foo';
tag.src = '/path/to/my/script.php?variable='+myVar;

您将脚本标记添加到dom以请求它

document.getElementsByTagName('head')[0].appendChild(tag);

在服务器端,php脚本接收变量并执行它应该做的任何事情,并且可选地它可以回显之后将在页面上运行的任何javascript:

<?php
echo "alert('".$_GET['variable']."')";
很明显,警告,请注意,这只是一个简单的示例,要在生产站点上实现类似的功能,您需要确保这样做不会打开您的站点进行XSS攻击,代码注入等......如何做到这一点超出了这里讨论的内容,但要注意

答案 2 :(得分:0)

使用JavaScript的XMLHttpRequest向运行PHP的服务器发送消息。当PHP脚本响应时,XMLHttpRequest对象将通知您,您将能够获取XMLHttpRequest.responseText

让PHP响应JSON是一个好主意,它可以很容易地做到。然后,您可以使用JavaScript的JSON.parse函数解析responseText并使用它。

以下两篇文章将向您展示如何使用标准对象。

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

http://www.php.net/manual/en/function.json-encode.php

除非您想要了解有关跨域请求的所有信息,否则您必须确保不要尝试与加载页面的网站进行对话。