天道酬勤,学无止境

Passing array values to js

So current setup is as following:

PHP:data.php

<?php
$method = $_SERVER['REQUEST_METHOD'];
$data = array(
    "16508",
    "16498",
    "16506" 
);
if ($method === "GET") {    
    echo json_encode($data);
}
?>

JS:

$.get("./page_asset/data.php").then(function(returned) {
        data = JSON.parse(returned);    
};  

Now, how do I parse the data without getting the specific php page (as I don't want to rely on the specific php address such as "/page-asset/data.php").

For example:

PHP:

<?php
  $data = array(
    "16508",
    "16498",
    "16506" 
   );   
?>

I simply want to pass these values to js without relying on the page url.

标签

评论

You can use PHP to create the Javascript in the original page. json_encode() can be used to convert a PHP value to the analogous JS literal.

<?php
  $data = array(
    "16508",
    "16498",
    "16506" 
   );   
?>
<script>
var data = <?php echo json_encode($data); ?>;
</script>

You can use a hidden field:

<input id="my-data" type="hidden" value='<?php echo json_encode($data)?>' />

And then you can parse the input value from javascript:

var data = $.parseJSON($('#my-data').val());

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在 asm.js 中的函数之间传递双数组(Passing double arrays between functions in asm.js)
    问题 我有一个 C 函数编译到 asm.js 中,参数如下: void myfunc(double v1[], double v2[], int v_size, double c) 它接受一个数组 ( v1 ),应用一个转换,然后用输出填充另一个相同大小的数组 ( v2 )。 我编译它,然后运行以下JS代码: v1 = new Array(1.0, 1.5, 2.0); v2 = Module._malloc(8 * v1.length); Module.ccall("myfunc", null, ["array", "number", "number", "number"], [v1, v2, v1.length, 2]); 但是,当我运行getValue(v2, "double")我得到 1.297703e-318(这是错误的),当我运行getValue(v2 + 8, "double")或getValue(v2 + 16, "double")它返回 0(这也是错误的)。 我已经将 C 函数简化为仅控制台注销v1的内容,它也打印出垃圾数据,因此至少在读取传入的双数组时存在问题。更具体的问题是: 如何正确地将双数组传入 asm.js 函数? 如何从 asm.js 函数正确返回双精度数组? 回答1 我有点晚了,但对于它的价值...... 在 JS 和 Emscripten
  • 将 vec2 数组传递给 THREE.js 中的着色器(Passing an array of vec2 to shader in THREE.js)
    问题 我已经在网上搜索了一段时间,但还没有找到正确的答案。 我找到了 THREE.js 使用的统一类型列表,我认为下面的代码应该是正确的。 在最后一行,我定义了一个 Vector2 的统一数组。 uniforms: { "center": { type: "v2", value: new THREE.Vector2( 0.5, 0.5 ) }, "aspectRatio": { type: "f", value: null }, "radius": { type: "f", value: 0.1 }, "pointList": { type: "v2v", value: [] }, }, 在我的 js 脚本中,我按如下方式传递这个数组。 这也应该有效,我想: // Add effects effect = new THREE.ShaderPass( THREE.MetaBalls2D ); effect.renderToScreen = true; effect.uniforms[ 'aspectRatio' ].value = window.innerWidth/window.innerHeight; effect.uniforms[ 'pointList' ].value = pointList //is an array of THREE.Vector2; composer
  • Passing an array of vec2 to shader in THREE.js
    I've been searching the web for a while now and did not find the correct answer yet. I found the list of uniform types THREE.js uses, and I think the following code should be correct. At the last line I define an uniform array of Vector2. uniforms: { "center": { type: "v2", value: new THREE.Vector2( 0.5, 0.5 ) }, "aspectRatio": { type: "f", value: null }, "radius": { type: "f", value: 0.1 }, "pointList": { type: "v2v", value: [] }, }, In my js script I pass this array as follows. This should work too, I guess: // Add effects effect = new THREE.ShaderPass( THREE.MetaBalls2D ); effect
  • passing each element of array in the labels of char.js
    i am using chart.js i want to dynamically update label of my bar chart i have an array in javascript that takes it values from ajax now the issue is i want to pass each element of array in the label labels: [array[0],array[1],array[2],array[3],array[4]], this is what am i doing i m hard-coding each element of array but this is not what i wanted i want to display each element of array dynamically. I was thinking to take the length of array and then loop through the array till its length but again the issue is labels prop. of chart.js doesn't allow me to write JavaScript code in it....kindly
  • 在 char.js 的标签中传递数组的每个元素(passing each element of array in the labels of char.js)
    问题 我正在使用 chart.js 我想动态更新我的条形图的标签 我在 javascript 中有一个数组,它从 ajax 获取它的值,现在问题是我想在标签中传递数组的每个元素 labels: [array[0],array[1],array[2],array[3],array[4]], 这就是我在做什么,我对数组的每个元素进行了硬编码,但这不是我想要的,我想动态显示数组的每个元素。 我想取数组的长度,然后遍历数组直到它的长度,但问题又是标签道具。 chart.js 不允许我在其中编写 JavaScript 代码......请帮助我 这是我的代码 var label_values=$('.labels').text(); //label_values has this string "09:00:0010:00:0011:00:0012:00:0013:00:00" var array=[]; array = label_values.match(/(\d+:){2}\d\d/g); var canavas=jQuery('<canvas id="myChart" style="width: 75%; display: block; border: 0px; height: 0px; margin: 0px; position: absolute; left: 0px; right
  • Problems in passing PHP array to JavaScript
    I understand that the format for passing a PHP array to Javascript is: <script type="text/javascript"> var obj = <?php echo json_encode($php_variable); ?>; </script> I have a php function that stores some values in a longitude and latitude array. These array do hold the right values within php since print_r() within php shows me that the array is correct. print_r($latitude_array); print_r($longitude_array); Now, I pass on this array to JS in this manner: <script> var lati_array = "<?php echo json_encode($latitude_array); ?>"; var longi_array = "<?php echo json_encode($longitude_array); ?>"
  • JSON 不将数组数据传递给 PHP(JSON not passing array data to PHP)
    问题 我正在尝试更改我的代码以根据上一个问题的建议使用 json 以简化一些事情... 在客户端: <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="../js/jquery.tablednd_0_5.js"></script> <script type="text/javascript" src="../js/jquery.json-2.2.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#table').tableDnD(); }); function sendData() { data = $('#table').tableDnDSerialize(); alert(data); // shows expected data document.dataform.data.value = $.toJson(data); document.data.submit(); } </script> <form action="$php_page_name" method="post" name=
  • JSON not passing array data to PHP
    I am trying to change my code to use json on recommendation from a previous question to simplify things a bit... On client side: <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="../js/jquery.tablednd_0_5.js"></script> <script type="text/javascript" src="../js/jquery.json-2.2.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#table').tableDnD(); }); function sendData() { data = $('#table').tableDnDSerialize(); alert(data); // shows expected data document.dataform.data.value = $.toJson(data); document.data
  • 将 PHP 数组传递给 JavaScript 的问题(Problems in passing PHP array to JavaScript)
    问题 我知道将 PHP 数组传递给 Javascript 的格式是: <script type="text/javascript"> var obj = <?php echo json_encode($php_variable); ?>; </script> 我有一个 php 函数,它在经度和纬度数组中存储一些值。 这些数组确实在 php 中保存了正确的值,因为 php 中的 print_r() 告诉我该数组是正确的。 print_r($latitude_array); print_r($longitude_array); 现在,我以这种方式将此数组传递给 JS: <script> var lati_array = "<?php echo json_encode($latitude_array); ?>"; var longi_array = "<?php echo json_encode($longitude_array); ?>"; alert(lati_array[0]); </script> 一开始,当我打开 HTML 文件时,它显示一个空数组(这是预期的,因为 PHP 数组尚未填充)。 然后用户输入一些东西,php 数组中填满了经度和纬度。 现在应该将这些值传递给 JS。 但是,在那之后它不会发出任何警报。 我不确定数组是否成功传递给 JS。 我错过了什么? 回答1
  • 从/向 C#(非 C)COM 组件加载和传递 JScript 数组(Loading and Passing JScript Arrays from/to C# (not C) COM Component)
    问题 我看过有关 jscript 数组的教程,但还没有看到。 我看到类似的问题,但涉及 Win32 代码而不是 .NET。 想知道如何在 JScript 和 C# COM 组件之间来回传递数组? 例如,我在 C# COM 中定义了两个属性,它们返回字符串和整数数组: string[] HeaderLines { get; set; } int[] ImagePixels { get; set; } 在我的 test.js 文件中: ... var T = new ActiveXObject("Imager.Reader"); ... var headerLines = T.HeaderLines; WScript.StdOut.WriteLine("First HeaderLine:" + headerLines[0]); var pixels = T.ImagePixels; WScript.StdOut.WriteLine("First Pixel: " + pixels[0]); 错误是写出 headerLines[0] 的地方:C:\temp\test.js(12, 1) Microsoft JScript 运行时错误:'headerLines.0' is null or not an object 如果我删除 test.js 中的 headerLines,则会收到此错误
  • d3.js:将数据从父节点传递到子节点(d3.js: Passing data from parent to child nodes)
    问题 我正在使用d3制作堆积的条形图。 数据是一个数组,每个小节都有一个对象(例如,“喜欢”)。 然后,每个对象都包含一个值数组,这些值驱动每个条形的各个矩形: data = [{ key = 'likes', values = [ {key = 'blue-frog', value = 1}, {key = 'goodbye', value = 2} ] }, { key = 'dislikes, values = [ {key = 'blue-frog', value = 3}, {key = 'goodbye', value = 4} ] }] 图表工作正常,如下所示: // Create canvas bars = svg.append("g"); // Create individual bars, and append data // 'likes' are bound to first bar, 'dislikes' to second bar = bars.selectAll(".bar") .data(data) .enter() .append("g"); // Create rectangles per bar, and append data // 'blue-frog' is bound to first rectangle, etc. rect =
  • 将变量值从C#传递到javascript(passing variable values from c# to javascript)
    问题 首先,很抱歉提出了一个已经回答了很多次的问题,但是我已经尝试了上面提到的大多数过程,但仍然无法使它正常工作。 我有一个ASP.NET应用程序(服务器端),我想通过使用WebGL(JavaScript,客户端)来可视化一些结果。 通过在jscript文件中编写所有必要的JS代码(只要我知道我要提前绘制的内容,然后将所有内容写在其中),我就可以在aspx文件中创建画布并绘制3D对象(立方体)。 Jscript)。 但是,我的意图是根据我的服务器端代码编写一个不同的对象。 当我单击可视化按钮时,将触发回发。 在服务器中,将执行一些代码,并在aspx.cs文件中全局定义的数组中返回一些坐标。 我需要将节点坐标数组从服务器传递到JS文件,以便实际绘制我想要的对象。 这基本上是我尝试过的: 我发现传递变量的最简单方法是在aspx.cs(c#代码)中声明一个公共属性,然后在JS编写中: var clientVariable = '<%=ServerVariable%>'; 我试过的不是数组,而是字符串变量,如果写的话: alert(clientVariable); 我在窗口中看到“ <%= ServerVariable%>”,而不是实际值。 我不知道我是否需要任何其他图书馆或什么。 如果我什至无法使这个简单的示例正常工作,那么我什至不知道如何使用双精度数组来做到这一点。
  • Passing an array of values from Android Activity to JavaScript in a WebView
    I'm using a JS Charts library to draw graphs in a WebView of my Android Application. I want to provide the data from the SQLite database. At this moment I'm stuck on how to pass array of data from Java to JavaScript. The JavaScript part expects something like that: data = new Array([10, 10], [20, 10]); I know about the addJavaScriptInterface and I managed to pass single values from my Activity to a WebView. It's only the array that gives me trouble. I thought about something like that: final class ChartDataLoader { public double[][] getData() { double[][] data = {{10, 10}, {20, 10}}; return
  • 在Javascript中传递(laravel)数组(Passing (laravel) Array in Javascript)
    问题 我想在JavaScript变量中传递/存储Laravel数组。 我使用了->all()所以得到的是这样的结果,而不是对象: array:83 [▼ 0 => 1 1 => 11 2 => 12 ... ] 我可以使用{{ $theArray }}访问此视图。 但是,无论我尝试了什么,我都无法将其添加到javascript数组中。 我试过了 var array = {{ $theArray }}; var array = {{{ $theArray }}}; 我觉得我已经接近了,但我想不通 回答1 var app = @json($array); 奇迹般有效 回答2 你可以使用json_encode() var array = {{ json_encode($theArray) }}; 或使用JSON.parse()解析json字符串 var array = JSON.parse('{{ json_encode($theArray) }}'); 回答3 这对我有用:) var array = {!! json_encode($theArray) !!}; 回答4 有时,您可能会将数组传递给视图,以将其呈现为JSON,以便初始化JavaScript变量。 例如: <script> var app = <?php echo json_encode($array); ?>; <
  • Loading and Passing JScript Arrays from/to C# (not C) COM Component
    I have looked at tutorials on jscript arrays, but not seeing it yet. I saw something similar asked but involving Win32 code not .NET. Wondering, how do I pass arrays back and forth between JScript and a C# COM component? For example, I have two properties defined in my C# COM that returns string and integer arrays as: string[] HeaderLines { get; set; } int[] ImagePixels { get; set; } In my test.js file: ... var T = new ActiveXObject("Imager.Reader"); ... var headerLines = T.HeaderLines; WScript.StdOut.WriteLine("First HeaderLine:" + headerLines[0]); var pixels = T.ImagePixels; WScript.StdOut
  • EmbedScriptFromFile 和 RunScriptFromFile - QTP / UFT(EmbedScriptFromFile & RunScriptFromFile - QTP/UFT)
    问题 请帮助我使用EmbedScriptFromFile和RunScriptFromFile在 QTP/UFT 中执行 JS 文件。 我正在尝试使用 JS 文件获取 N 个值,并在数组中的 QTP/UFT 中接收相同的值。 为此,我已经了解了 QTP/UFT 帮助部分中的EmbedScriptFromFile和RunScriptFromFile 。 但是当我尝试使用示例代码时,我无法按预期完成。 请帮助我解决这个问题 我正在使用的 Java 脚本代码: function cloneArray(arr) { var ret = []; for (var i = 0; i < arr.length; ++i) ret.push(arr[i]); return ret; } VB 脚本,我正在使用: Browser("Home").Page("Home").EmbedScriptFromFile "C:\Users\Gopi\Desktop\CloneArray.js" 'Call the function and run the script that returns the array' Set cloned = Browser("Home").Page("Home").RunScriptFromFile("cloneArray(C:\Users\Gopi\Desktop)")
  • 将数据从一个组件传递到另一个组件(Passing data from one component to another component)
    问题 我已经开始动手操作 reactjs。 我将三个组件放在单独的文件中。 mainPage.js list.js和tableDisplay.js是三个不同的文件。 使用 reactjs 后,我几乎没有怀疑。 mainPage.js的输出作为输入传递给list.js ,所以这里mainPage.js是父级而list.js是子级(如果错误请纠正我)。同样, list.js输出作为输入传递给tableDisplay.js ,我的疑问是, list.js是作为子组件还是作为list.js父组件。 list.js提取的输出是来自数据库的表。 所以我试图在tableDisplay.js页面中显示同一个表,我将获取的数据存储为一个对象。 但是我收到一个错误Objects are not valid as a React child (found: object with keys {Name, Emp.no, Designation, WorkOff}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of
  • 将一组值从 Android Activity 传递到 WebView 中的 JavaScript(Passing an array of values from Android Activity to JavaScript in a WebView)
    问题 我正在使用 JS 图表库在我的 Android 应用程序的 WebView 中绘制图形。 我想提供 SQLite 数据库中的数据。 此刻我被困在如何将数据数组从 Java 传递到 JavaScript。 JavaScript 部分需要这样的东西: data = new Array([10, 10], [20, 10]); 我知道addJavaScriptInterface并且我设法将单个值从我的 Activity 传递到 WebView。 只有数组给我带来了麻烦。 我想过这样的事情: final class ChartDataLoader { public double[][] getData() { double[][] data = {{10, 10}, {20, 10}}; return data; } } 请注意,目前我只是对数据进行硬编码,但最终会从数据库中提取出来。 然后我将其暴露给我的 JS: webView.addJavascriptInterface(new ChartDataLoader(), "dataLoader"); 最后尝试用 JavaScript 读取它: <html> <head> <script type="text/javascript" src="jscharts.js"></script> </head> <body> <div id=
  • d3.js: Passing data from parent to child nodes
    I am using d3 to make a stacked bar chart. The data is an array with one object for each bar (e.g 'likes'). Then each object contains an array of values which drive the individual rectangles per bar: data = [{ key = 'likes', values = [ {key = 'blue-frog', value = 1}, {key = 'goodbye', value = 2} ] }, { key = 'dislikes, values = [ {key = 'blue-frog', value = 3}, {key = 'goodbye', value = 4} ] }] The chart is working fine, like so: // Create canvas bars = svg.append("g"); // Create individual bars, and append data // 'likes' are bound to first bar, 'dislikes' to second bar = bars.selectAll(".bar
  • Reactjs - passing state value from one component to another
    I have two components SideNav and Dashboard (two are in different js files). SideNav will have selectbox as filters. I have to pass an array from Dashboard component to Sidebar component. This array has to given as values for select box (which is inside sidenav component). P.S. What will be the case if I have two different component classes defined in two different JS files. e.g. HomeComponent/Home.js -> Parent component Dashboard/Dashboard.js -> Child component I am making API call on "Home.js" file and getting some data. I want to pass these data to "Dashboard.js" file (component) All the