Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用HTML JSON进行调试_Javascript_Jquery_Html_Json_Perl - Fatal编程技术网

Javascript 使用HTML JSON进行调试

Javascript 使用HTML JSON进行调试,javascript,jquery,html,json,perl,Javascript,Jquery,Html,Json,Perl,如图所示,我有一个perl cgi脚本,可以打印到JSON 这有两个部分。第1部分使用搜索按钮向用户显示html文本框/下拉框 当用户提供一些输入并单击search时,会触发javascript函数do_search,该函数调用相同的cgi脚本并使用params发送值 脚本的第2部分接受这些值并查询数据库,获取结果并打印到json 我的问题是如何调试这个脚本。 例如,我想打印sql并查看。我该怎么做 CGI Script: #!/usr/bin/perl -wT use DBI; use s

如图所示,我有一个perl cgi脚本,可以打印到JSON

这有两个部分。第1部分使用搜索按钮向用户显示html文本框/下拉框

当用户提供一些输入并单击search时,会触发javascript函数do_search,该函数调用相同的cgi脚本并使用params发送值

脚本的第2部分接受这些值并查询数据库,获取结果并打印到json

我的问题是如何调试这个脚本。 例如,我想打印sql并查看。我该怎么做

CGI Script:

#!/usr/bin/perl -wT

use DBI;
use strict;
use CGI qw(param);
use Data::Dumper;
use JSON;

use lib "/home/thames/lib";
use Kearynet;

my $method = param('method');

if($method){

        my $html;

        my $id = param('id');
        my $inspector = param('inspector');
        my $postcode = param('postcode');
        my $pjk_status = param('status');
        my $pjk_validated = param('pjkvalidated');
        my $pjk_type = param('pjktype');

        my @query;
        my @query_values;

        if($id){
                #$html .= "Id is <b>" . $id . "</b><br>";
                push(@query, "`inspection_id` = ?");
                push(@query_values, $id);
        }

        if($inspector){
                #$html .= "Inspector is <b>" . $inspector. "</b><br>";
                push(@query, "`inspector` LIKE ?");
                push(@query_values, '%' . $inspector. '%');
        }

        if($postcode){
                #$html .= "Postcode is <b>" . $postcode. "</b><br>";
                push(@query, "`postcode` LIKE ?");
                push(@query_values, '%' . $postcode. '%');
        }

        if($pjk_status){
                push(@query, "`status` = ?");
                push(@query_values, $pjk_status);
        }

        if($pjk_validated){
                push(@query, "`PJK_Validated` = ?");
                push(@query_values, $pjk_validated);
        }

        if($pjk_type){
                push(@query, "`PJK_Type` = ?");
                push(@query_values, $pjk_type);
        }
                push(@query, "`date` > ?");
                push(@query_values, "20140831");


        my $dbh = DBI->connect("DBI:mysql:database=tw;host=db.net", "xyz", "xyz");
        my $sql = "SELECT * FROM tw_general.insp_gang ";

        if(@query){
                $sql .= "WHERE " . join(' AND ', @query);
        }

        $sql .= " ORDER BY date";
        #$html .= "Sql is <b>" . $sql. "</b> <br>";
        my $query = $dbh->prepare($sql);
        warn $sql;

        if( $query->execute( @query_values ) ){
                if($query->rows > 0){
                        $html .= "There are <b>" . $query->rows . "</b> records matching.<br><br>";
                        $html .= "<table cellpadding='4' width='960' cellspacing='0' style='border:1px solid #CCCCCC'>";
                        $html .= "<tr>";
                        $html .= "<td><b>Inspection ID</b></td>";
                        $html .= "<td><b>Inspector </b></td>";
                        $html .= "<td><b>Street </b></td>";
                        $html .= "<td><b>Town </b></td>";
                        $html .= "<td><b>Postcode </b></td>";
                        $html .= "<td><b>Status </b></td>";
                        $html .= "<td><b>PJK_Type</b></td>";
                        $html .= "<td><b>PJK_Validated</b></td>";
                        $html .= "<td><b>Date</b></td>";
                        $html .= "</tr>";
                        while(my $row = $query->fetchrow_hashref){
                                $html .= "<tr>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC'><b><a href='SelectGangInsp.cgi?param1=$row->{inspection_id}' target='_blank'>$row->{inspection_id}</a></b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{inspector}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{street}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{town}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{postcode}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{status}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{PJK_type}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{PJK_Validated}</b></td>";
                                $html .= "<td style='border-bottom:1px solid #CCCCCC' nowrap><b>$row->{date}</b></td>";
                                $html .= "</tr>";
                        }
                        $html .= "</table>";
                }else{
                        $html .= "<b>Sorry - No Results were returned...</b>";
                }
        }
        print "Content-Type: application/json\n\n";
        #$html .= "There are <b>" . $id. "</b> records matching.<br><br>";
        print to_json({value    =>      $html}, {ascii => 1});


exit 0;
}

print "Content-type: text/html\n\n";
#print "<html><head><title>Hello World</title></head>\n";
#print "<body>\n";
#print "<h2>Hello, world!</h2>\n";
#print "</body></html>\n";
print <<HTML_BLOCK;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Kearynet - Show Gang Inspection Information 2014</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="db_search.js"></script>
</head>
<body>
<h1 style='color:#999999'>Show Gang Inspection Information (2014)</h1>
<br><br>
<table width="760" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td><strong>Inspection Id</strong></td>
    <td><strong>Inspector</strong></td>
    <td><strong>Postcode</strong></td>
    <td><strong>Status</strong></td>
    <td><strong>PJK<br>Type</strong></td>
    <td><strong>PJK<br>Validated</strong></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input name="inspid" type="text" id="inspid" /></td>
    <td><input name="inspector" type="text" id="inspector" /></td>
    <td><input name="postcode" type="text" id="postcode" /></td>
    <td><select name="status" id="status">
                <option></option>
                <option>Holding</option>
                <option>Completed</option>
                <option>TEST</option>
        </select></td>
    <td><select name="pjktype" id="pjktype">
                <option></option>
                <option>Gang on site</option>
                <option>Unattended SLG</option>
                <option>Post works</option>
                <option>Pre-works</option>
        </select></td>
    <td>
        <select name="pjkvalidated" id="pjkvalidated">
                <option></option>
                <option>Yes</option>
                <option>No</option>
                <option>Null</option>
        </select>
        </td>
    <td><input type="button" value="Search" onclick="DoSearch()"/></td>
  </tr>
</table>
<br><hr color='#CCCCCC'><br>
<div name='search' id='search'></div>
    HTML_BLOCK

Java script:
function DoSearch(){

        var ID = $("#inspid").val();
        var Inspector = $("#inspector").val();
        var Postcode = $("#postcode").val();
        var Status = $("#status").val();
        var PjkValidated = $("#pjkvalidated").val();
        var PjkType = $("#pjktype").val();

        $("#search").html("<div style='padding:10px'><img src='img/loading.gif'></div>");

        $.post('DoGangInsp.cgi', {method: "search", id: ID, inspector: Inspector, postcode: Postcode, status: Status, pjkvalidated: PjkValidated, pjktype: PjkType},

                function(data){

                        $("#search").html(data.value);


                }
        );

}

如果要根据Marc B的注释返回JSON中的SQL,请将此行更改为,例如:

print to_json({value => $html, sql => $sql}, {ascii => 1});

这将只向散列中添加另一个键/值,以便返回SQL。另一种方法是将日志添加到脚本中。如果搜索,还有其他Perl日志选项。

返回的是json。您可以轻松地将查询字符串添加到json文件中的另一个参数中。你可以把它倒进一个文件,诸如此类。你有很多选择。你能给我一个指针吗?你能告诉我怎么做吗?或者一个有帮助的链接?谢谢。您好,Zerodiff,正如您所提到的,我试图将sql打印到_json中。但是没有运气。我在网页中找不到该查询。我应该对java脚本进行任何更改吗?请告知。谢谢。它不会出现在HTML中,除非你把它放在那里。。。另一个解决方案是将其作为注释放入HTML中,例如。您必须在浏览器中打开调用JavaScript调试器的地方,并查看JSON响应内容,例如,在命令行上从curl调用。