Как показано, у меня есть скрипт perl cgi, который печатает JSON.Отладка с помощью HTML JSON
Это 2 части. part-1 показывает текстовое поле/раскрывающееся окно в html для пользователя с кнопкой поиска.
Когда пользователь вводит ввод и нажимает кнопку поиска, запускается функция javascript do_search, которая вызывает тот же скрипт cgi и отправляет значения с использованием параметров.
часть-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> </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);
}
);
}
Вы возвращаетесь json. вы можете легко добавить строку запроса в другой параметр в json. вы можете сбросить его в файл, бла-бла. у вас есть много вариантов. выберите один и идите с ним. –
Не могли бы вы дать мне указатель? – Mahesh
не могли бы вы рассказать мне, как мне это сделать или ссылку, которая поможет? Благодарю. – Mahesh