0

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

每次单击链接时,我都希望能够将作为唯一 ID 的 EID 发送到 PHP 脚本。

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

4

3 回答 3

1

确保您使用 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;
 }

我相信您可以解决这个问题...表现出一些努力..不要害怕问您是否仍然不明白..只要您尝试即可。

于 2013-10-24T01:31:01.300 回答
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 攻击、代码注入等...如何做到这一点超出了这里讨论的范围,但请注意

于 2013-10-24T01:31:46.603 回答
0

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

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

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

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

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

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

于 2013-10-24T01:07:29.877 回答