PHP Javascript HTML

PHP Javascript HTML,javascript,php,html,database,Javascript,Php,Html,Database,我找不到确切的问题,所以我会把它贴在这里。我正在使用oracle数据库,并通过javascript和php将其链接到HTML网站。我得到了正确显示的php文件。基本上,我有4个按钮,每个按钮生成一个特定的查询,并在一个新的html页面中显示结果。这是一个电影数据库,所以我们的问题之一是预算与流派。它的工作方式与我的相同,但它不是通过html文件生成的,而是显示PHP文件。我的目标是通过javascript检索PHP文件的输出,并将其设置为HTML文件进行输出。我对php和javascript一起

我找不到确切的问题,所以我会把它贴在这里。我正在使用oracle数据库,并通过javascript和php将其链接到HTML网站。我得到了正确显示的php文件。基本上,我有4个按钮,每个按钮生成一个特定的查询,并在一个新的html页面中显示结果。这是一个电影数据库,所以我们的问题之一是预算与流派。它的工作方式与我的相同,但它不是通过html文件生成的,而是显示PHP文件。我的目标是通过javascript检索PHP文件的输出,并将其设置为HTML文件进行输出。我对php和javascript一起工作还不熟悉,所以也许有人可以告诉我这里发生了什么,需要做哪些更改才能正常工作。我从oracles网站获得了将数据库连接到网站的javascript代码

这是我的第一个PHP:

<?php

        // Connect to the database=
        $c = oci_connect ("user101", "pass101", "localhost:1521/XE");

        // Define the query.
        $q = 'SELECT distinct m.title, f.budget FROM movies m, finance f WHERE m.imdb_id = f.imdb_id AND  budget > 100000000 ORDER BY budget DESC';


        // Parse the query.
        $s = oci_parse($c, $q);

        $didbv = 60;
        oci_bind_by_name($s, ':budget', $budget);
        oci_bind_by_name($s, ':title', $title);

        // Execute the query.
        oci_execute($s);

        $i = 1;
        print '<table border="1"><tr><th>Rank</th><th>Title</th><th>Budget</th>';
        while (($row = oci_fetch_array($s, OCI_ASSOC)) != false) {
        $table[i++] = array("title" => $row['TITLE'], 'budget' => $row['BUDGET']);
        }
        oci_free_statement($s);

        // Close the connection.
        oci_close($c);
        header('Content-Type: application/json');
        echo json_encode($table);

?>

如前所述,最好将JSON数据传递回AJAX调用,并根据结果构建表。这可能是这样的:

PHP

<?php
// Connect to the database= oci_connect ("user101", "pass101", "localhost:1521/XE");
// Define the query.
$q = 'SELECT distinct m.title, f.budget FROM movies m, finance f WHERE m.imdb_id = f.imdb_id AND  budget > 100000000 ORDER BY budget DESC';
// Parse the query.
$s = oci_parse($c, $q);
$didbv = 60;
oci_bind_by_name($s, ':budget', $budget);
oci_bind_by_name($s, ':title', $title);
// Execute the query.
oci_execute($s);
$i = 1;
$table = array();
while (($row = oci_fetch_array($s, OCI_ASSOC)) != false) {
    $table[i++] = array("title" => $row['TITLE'], "budget" => $row['BUDGET']);
}
oci_free_statement($s);
// Close the connection.
oci_close($c);
header('Content-Type: application/json');
echo json_encode($table);
?>

然后可以使用jQuery解决方案,如下所示:

HTML

<button id="getReport">
  Get Report
</button>
<h2>Name of report</h2>
<p id="bud_gro"></p>

得到报告
报告名称

JavaScript

$(function() {
  $("button#getReport").click(function() {
    $.getJSON("ajax.php", function(data) {
      var reportTable = $("<table>", {
        border: 1
      });
      reportTable.append("<thead><th>Rank</th><th>Title</th><th>Budget</th></thead><tbody></tbody>");
      $.each(data, function(k, v) {
        reportTable.find("tbody").append("<tr><td>" + k + "</td><td>" + v.title + "</td><td>" + v.budget + "</td></tr>");
      });
      $("#bud_gro").append(reportTable);
    });
  });
});
$(函数(){
$(“按钮#获取报告”)。单击(函数(){
$.getJSON(“ajax.php”,函数(数据){
var reportTable=$(“”{
边界:1
});
reportTable.append(“RankTitleBudget”);
$。每个(数据、函数(k、v){
reportTable.find(“tbody”).append(“+k+”+v.title+”+v.budget+”);
});
$(“#bud_gro”)。追加(报告表);
});
});
});

另一个旁注:我的查询也不是我想要的,但这只是一个测试,先让它正确显示。好吧。在预览中,我的php显示得很好,但是现在它显示出来了,看起来很混乱。如果我需要重新提交php内容,请告诉我。但这可能并不相关。可能只是JavaScript。谢谢格式化编辑,SMCD::你会考虑把JSON传递回AJAX,然后从JSON数据构建表吗?它不是为我切换页面。我不得不做一些改动。例如,查询数据的按钮与显示数据的页面不同。因此,在$(#bud_gro”).append(reportTable)之后,我添加了window.location.replace(“generate_report.html”)。(bud_gro是generate_report.html中的一个div,getReport是select_report.html中按钮的id)。有什么想法吗?Thanks@MikeP这是完全不清楚的。你没有在你原来的帖子中定义这个,我也没有例子中的参考框架。好的,它已经更新了,谢谢大家的建议或意见。好的,有趣的事情。我通过在$(“button#genBudg”)后面设置alert来检查该函数是否正在被调用。单击(function(){什么都没有发生。我是否使用了该权限,或者我仍然需要在html中执行onclick事件?我甚至拿走了按钮,只使用了#genBudg,没有任何更改。好的,我发现,除非我将它放入html文件(而不是external.js)中,否则它不会工作.还有一个问题我要处理一下
<?php
// Connect to the database= oci_connect ("user101", "pass101", "localhost:1521/XE");
// Define the query.
$q = 'SELECT distinct m.title, f.budget FROM movies m, finance f WHERE m.imdb_id = f.imdb_id AND  budget > 100000000 ORDER BY budget DESC';
// Parse the query.
$s = oci_parse($c, $q);
$didbv = 60;
oci_bind_by_name($s, ':budget', $budget);
oci_bind_by_name($s, ':title', $title);
// Execute the query.
oci_execute($s);
$i = 1;
$table = array();
while (($row = oci_fetch_array($s, OCI_ASSOC)) != false) {
    $table[i++] = array("title" => $row['TITLE'], "budget" => $row['BUDGET']);
}
oci_free_statement($s);
// Close the connection.
oci_close($c);
header('Content-Type: application/json');
echo json_encode($table);
?>
<button id="getReport">
  Get Report
</button>
<h2>Name of report</h2>
<p id="bud_gro"></p>
$(function() {
  $("button#getReport").click(function() {
    $.getJSON("ajax.php", function(data) {
      var reportTable = $("<table>", {
        border: 1
      });
      reportTable.append("<thead><th>Rank</th><th>Title</th><th>Budget</th></thead><tbody></tbody>");
      $.each(data, function(k, v) {
        reportTable.find("tbody").append("<tr><td>" + k + "</td><td>" + v.title + "</td><td>" + v.budget + "</td></tr>");
      });
      $("#bud_gro").append(reportTable);
    });
  });
});