将php变量(点击)传递给另一个php脚本
案例:我创建了sql数据按钮(while循环),对于每一行结果(machine_id,tag_name,real_value),我创建了一个按钮。此按钮有一个onclick方法,它调用JavaScript方法“drawChart()”,并用静态查询弹出图表。我试图让这个查询动态的按钮被点击的值。将php变量(点击)传递给另一个php脚本
创建按钮的代码片段。 drawChart的
while ($row = mysqli_fetch_array($result)) {
if ($row["int_value"] == 0 && $row["real_value"] == 0.0 && $row["bool_value"] != "") {
$data[] = $row;
$output .= '
<tr>
<td width="30%"><button name="view" value="view" id="id" class="view_btn_data" onclick="drawChart(\'' . $row["tag_name"] . '\')">' . $row["tag_name"] . '</button></td>
<td width="30%">' . $row["bool_value"] . '</td>
<td width="40%">' . $row["datetime"] . '</td>
</tr>
';
}
Javascript代码():
function drawChart()
{
google.charts.load('current', {'packages': ['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart(tagname) {
var jsonData = $.ajax({
url: "testChart.php",
dataType: "json",
data: {tagname: tagname},
async: false
}).responseText;
var data = new google.visualization.DataTable(jsonData);
var options = {
chart: {
title: 'Values',
},
width: 900,
height: 500
};
//var chart = new google.charts.Line(document.getElementById('chart_div'));
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
//chart.draw(data, google.charts.Line.convertOptions(options));
chart.draw(data, options);
$('#chartModal').modal("show");
}
}
图得到他testChart.php的数据,下面的查询:
$tagname = $_REQUEST['tagname'];
$Chart = "SELECT *
FROM (
SELECT *,
@rn := if(@tag_name = tag_name,
@rn + 1,
if(@tag_name := tag_name, 1, 1)
) as tag_count
FROM waardes
CROSS JOIN (SELECT @rn := 0, @tag_name := '') as vars
ORDER BY tag_name
) as T
WHERE tag_count < 51 AND machine_id LIKE 3 AND tag_name LIKE '. $tagname .'
ORDER BY datetime DESC";
它的工作原理,但一个静态图,点是,如果单击按钮,我想将该$行的参数传递给查询“WHERE tag_count < 51 AND machine_id LIKE 变量$ row [“machine_id”] AND tag_name LIKE 变量$ row [“tag_name”]“。
*对不起,如果它有点混乱,不真正与php,html和javascript家庭。
以下更改将标记名链接到drawchart()函数,并将其与您的ajax请求一起发送。
然后,只需读取PHP中的标记名并将其构建到MySQL查询中即可。
PHP
<td width="30%"><button name="view" value="view" id="id" class="view_btn_data" onclick="drawChart(\'' . $row["tag_name"] . '\')">' . $row["tag_name"] . '</button></td>
JS
function drawChart(tagname) {
var jsonData = $.ajax({
url: "testChart.php",
dataType: "json",
data{tagname:tagname}
async: false
}).responseText;
我1:1将你的代码复制到我的代码中,我没有看到JavaScript如何将tagname(在php文件中)连接起来。而我现在如何在testChart.php中查询参数?对不起,我用PHP做了一个noob。 – Niels
如果您查看源代码,您应该在onclick =“drawChart()中看到标记名,并将其传递给javascript函数并通过ajax发送到服务器。变量在PHP –
如果我理解正确:来自createButtons.php的参数 - > Javascript创建chart.js - > chart.php。我已经在我的JavaScript中的参数,因为你说(未测试,因为我不知道如何测试与netbeans),现在我需要在我的.php文件查询所在的位置的参数..你能给我一个例子吗?对不起10周PHP的经验 – Niels
传递的网址你的机器ID “testChart.php?ID =”。$行[ 'machine_id']和访问使用$你的PHP页面_GET ['machine_id'] – pravindot17
我已经编辑上面的代码..请再看一遍。 – Niels