【问题标题】:Parse HTML input value to php over javascript file通过 javascript 文件将 HTML 输入值解析为 php
【发布时间】:2019-09-14 07:02:46
【问题描述】:

我正在运行以下场景:

graph.html --> 使用 ChartJS 显示折线图并导入 graph.js

<html>
<head>
<title>ChartJS - LineGraph</title>
</head>
<body>
<div class="chart-container">
  <canvas id="mycanvas"></canvas>
</div>
<form name="form" action="" method="get">
<input type="text" name="input" id="subject" value="">
</form>
<!-- javascript -->
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/Chart.min.js"></script>
<script type="text/javascript" src="js/graph.js"></script>
</body>

graph.js --> 对 graph.php 文件进行 AJAX 调用以获取数据并对其进行格式化。

$(document).ready(function(){
$.ajax({
url : "/graph.php",
type : "GET",
success : function(data){
console.log(data);
...
var LineGraph = new Chart(ctx, {
    type: 'line',
    data: chartdata
  });

graph.php --> 调用mysql数据库获取数据

$var = $_GET['input'];
$query = sprintf("SELECT $var FROM wetter");

//execute query
$result = $mysqli->query($query);

我喜欢通过在 .html 文件的输入字段中输入新的 SELECT 语句来更改 php 文件中的 SELECT 语句。如果我将普通的 $_GET[] 方法放入 .php 中,它将无法从 .html 文件中找到输入值。

当两者之间有 Javascript 文件时,如何将输入值从 .html 解析到 .php? 我需要在我的场景中进行一些更改吗?

【问题讨论】:

  • 由于某种原因,我看不到您的编码尝试。题外话:为什么我的代码不起作用?
  • 我觉得这里发的代码太多了,所以我想大致谈谈如何做的原理
  • 我们只需要查看损坏的脚本,而不是您服务器上的每个文件。
  • 我已经添加了代码
  • 您的代码易受 SQL 注入攻击。您应该使用白名单。 stackoverflow.com/a/60496/1839439

标签: javascript php mysql input chart.js


【解决方案1】:

从您显示的代码来看,您似乎没有将输入值与您的 ajax 请求一起传递,您应该添加类似

的内容
$.ajax({
   url : "/graph.php",
   type : "GET",
   data : {input : $('#subject').val()}, <-- added this
   success : function(data){

为了能够在php端看到$_GET['input']中的值。

但我相信还有另一个问题,您的 ajax 请求会在您的文档准备好后立即发送 ($(document).ready(function(){),但那时您的输入很可能是空的。您可能想将其更改为 $('form[name="form"]').on('submit',function(event){event.preventDefault(); ...}),假设您的表单只做一件事(根据输入显示图表)

【讨论】:

  • 非常感谢,但是我怎样才能访问 php 中的数据呢? $var_name =$_GET['主题'];似乎不起作用。
  • 我在 ajax 数据中的“输入”周围有撇号,我深表歉意...要在 php 中获取它,如果您定义了 data : {input : $('#subject').val()} 它应该在 $_GET['input'] 中,只需替换 input如果您希望密钥为 $_GET['subject'],请在 ajax 数据中通过 subject
猜你喜欢
  • 2020-12-31
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
  • 2012-06-27
相关资源
最近更新 更多