그림과 같이 JSON에 인쇄하는 perl cgi 스크립트가 있습니다.HTML로 디버깅 JSON
두 부분으로 구성됩니다. part-1은 html의 텍스트 박스/드롭 다운 박스를 검색 버튼이있는 사용자에게 보여줍니다.
사용자가 입력을 클릭하고 검색을 클릭하면 javascript 함수 do_search가 실행되어 동일한 cgi 스크립트를 호출하고 params를 사용하여 값을 보냅니다.
스크립트의 part-2는이 값을 받아들이고 데이터베이스를 쿼리하고 결과를 가져 와서 json으로 인쇄합니다.
제 질문은이 스크립트를 디버그하는 방법입니다. 예를 들어. SQL을 인쇄하고보고 싶습니다. 내가 어떻게 그럴 수 있니?
print to_json({value => $html, sql => $sql}, {ascii => 1});
이 그냥 그렇게 해시에 다른 키/값을 추가합니다 : 당신이 마크 B의 코멘트 당 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