点击将 JS 变量发送到 PHP


Send JS variable to PHP on-click

我有这个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;
            }
    }

我希望每次单击链接时都能将EID发送给PHP脚本,这是一个唯一的ID。

有什么帮助吗?我正在使用Jquery,但我不太熟悉它。如果有一个单独使用 JS 的选项,我将不胜感激。

你可以使用 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攻击,代码注入等... 如何做到这一点超出了这里讨论的范围,但请注意

确保使用 firebug 或类似的东西查看此内容以查看返回的结果,在 jquery done 函数中,您可以为数组执行 data[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;
 }

我相信你能弄清楚这一点...表现出一些努力..如果你仍然不明白,不要害怕问..只要你尝试。

使用 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

您只需要确保不要尝试与加载页面的网站不同的网站交谈,除非您想了解有关跨域请求的所有信息。