0

作为一个新手 js 和 jqplot 程序员,我需要有关将值数组从 php 传递到外部 javascript 以进行绘图的指导(使用 jqplot)。我对顺序以及如何调用 html、php 和外部 js、jqplot 感到困惑。一个简短的示例代码结构将非常有帮助。我们可以使用以下示例代码作为指导。谢谢

$(document).ready(function(){
  var plot1 = $.jqplot ('chart1',[[3,7,9,1,4,6,8,2,5]],{title: 'Plot'});
});

而不是上面的固定数据点,我希望它们通过以下 php 脚本中的数组动态加载。

<?php
  $Start_Value = $_POST['Start'];
  $End_Value = $_POST['End'];

  for($i=$Start_Value;$i<=$End_Value;$i+++)
     $Plot_Val[$i] = $i + 2;
  json_encode($Plot_Val);
?>
4

2 回答 2

1

你有几个选择。这里有2个最简单的:

  1. 只需将 PHP 中的数组“粘贴”为 JavaScript 全局变量。在页面顶部
    添加,然后代替数据数组使用。<script>var myData = <%= json_encode($Plot_Val); %>;</script>myData
  2. 更好的选择是使用 Ajax 从 JavaScript 调用 PHP 页面并获取结果,分离前端和后端代码。
于 2013-10-14T17:02:16.347 回答
0

最好的方法是使用 AJAX,在 JS 中是这样的:

$.ajax({
type:'POST',
url:'path/to/your.php',
data: {start: startValue, end: endValue}, //passing params to php
success: function (response) {
  console.log(response) // check what kind of stuff you got back :)
  var values = JSON.parse(response);
  // do stuff with this data
}
});

更新:要从表单中获取值,您不能将表单操作放入 js,而是使用 js 从表单中获取值。所以表单本身不应该发出 POST 请求,而是 js 应该从表单中获取值并发送 POST。

像这样的东西:

<form>
<input type="text" id="start">
<input type="text" id="end">
<button id="submitButton">Submit Me!</button>
</form>

JS,我们将上面的 AJAX 代码包装成一个函数:

function submitValues(startValue, endValue) {
  $.ajax({
  type:'POST',
  url:'path/to/your.php',
  data: {start: startValue, end: endValue}, //passing params to php
  success: function (response) {
    console.log(response) // check what kind of stuff you got back :)
    var values = JSON.parse(response);
    // do stuff with this data
  }
  });
}

$(document).on('click', '#submitButton', function(){
  var start = Number($('#start').val());
  var end = Number($('#end').val());
  //I guess you need numbers instead of text, that's why they are wrapped inside Number()
  submitValues(start, end);
});

这应该有效。请记住,我不知道您的表单是什么样的,这只是一个虚拟示例,但应该足够相似。您可以使用 jQuery 的 .val() 方法获取表单值,然后将这些值提供给 ajax 函数。

于 2013-10-14T17:21:48.553 回答