如何将javascript数组传递给php

时间:2012-03-06 22:14:42

标签: php javascript

我想将数组myWorkout传递给'play_workout.php'。 我想'play_workout.php'打开并显示myWorkout的内容(本例)。 (一旦我发现这是有效的,我将解析myWorkout中的数据并将其写回数据库)。 我没有在firebug中出现任何错误,但是play_workout没有被打开,也没有捕获数组对象myWorkout。

我很欣赏第二眼。 一如既往地谢谢!

page workout_now.php

<div id="playworkout"><button onClick="playWorkout()">Play Workout</button></div>

JAVASCRIPT

function playWorkout(){

  var arr = $("#dropTargetframe > li").map(function(){
  return $(this).attr('data-id');}).get();

     var myRoutine = arr;
     var myWorkout = new Array();
        for (var i in myRoutine){
           if (myRoutine[i])
             myWorkout.push(myRoutine[i]);
            }
          //array appears like ["4", "5", "1", "4"]
          JSON.stringify(myWorkout);
          encodeURIComponent(myWorkout);

         var url = "http://localhost/RealCardio/play_workout.php";

         $.get(url, myWorkout); 

page play_workout.php

<?php
 ...
 $arrayWorkout = json_decode($_REQUEST['myWorkout']); 
 print_r($arrayWorkout);     
...
?>

4 个答案:

答案 0 :(得分:1)

假设,在你的评论中,数组元素不包含任何特殊字符,只是数字,只需执行

var myWorkoutPost=myWorkout.join('x');

以你想要的方式将它传送到服务器(形成隐藏字段,AJAX,...),并在PHP中执行

$myWorkout=explode('x',$_REQUEST['myWorkoutPost']);

答案 1 :(得分:1)

PHP和Javascript都使用JSON编码,所以我想说最好的方法是对数组进行JSON编码,然后将其作为隐藏字段POST到PHP页面并使用JSON解码。

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

答案 2 :(得分:0)

将此数组编码为JSON,将其发送到php脚本并使用$ _POST接收它。 最后,在php脚本中解码JSON。

答案 3 :(得分:0)

几乎每个结构化值的工作流程99%的时间。

  • 使用JSON.stringify([1,2,3])它会为您提供一个字符串"[1,2,3]"
  • 使用encodeURIComponent("[1,2,3]")对其进行编码,您将拥有类似"%5B1%2C2%2C3%5D"
  • 的内容
  • 现在保存为发送到PHP或任何其他服务器端语言尝试使用XMLHttpRequest或更好jQuery.get()将值发送给PHP。

在php中你会这样做:   - $arrayOfValues = json_decode($_REQUEST['name_of_parameter']);   - print_r($arrayOfValues);

通常,您需要包含JSON库以支持旧浏览器。有关JSON的更多信息。