Я посмотрел ваш код и обнаружил, что вы допустили ряд ошибок: в самой форме и в части отправки (onsubmi=....
), в javascript обработке отправки (исправлено - return false
, пожалуйста, настройте api на ваш сервер).
Я не копировал базу данных, но использовал свой собственный скрипт с вашими данными из таблицы, вы найдете его ниже.
Я надеюсь, что вы найдете его полезно, хотя я думаю, что AJAX будет лучшим вариантом
Основной файл с perl кодом
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
print "content-type:text/html; charset=utf-8\n\n";
print <<ENDTAG
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<link rel="stylesheet" href="/styles.css">
</head>
<body>
<script language="JavaScript">
function showInput()
{
var artist = document.getElementById("user_input").value;
console.log(artist);
//alert(artist);
var api = "http://localhost/cgi-bin/api_perl.pl";
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", api, true);
xmlhttp.setRequestHeader("Content-Type", "application/text; charset=UTF-8");
xmlhttp.setRequestHeader('x-auth-token', 'ooooo');
xmlhttp.onreadystatechange = function() {
console.log('readyStatechange: ' + xmlhttp.readyState);
if(xmlhttp.readyState === 4 && xmlhttp.status === 200)
{
var response = xmlhttp.responseText;
document.getElementById('display').innerHTML = response;
} else {
//alert ("Something Went Wrong");
//console.error(xmlhttp.status);
}
}
console.log('Before open: ' + xmlhttp.readyState);
xmlhttp.send(artist);
return false;
}
</script>
<form method="POST" onsubmit="return showInput();">
<label><b>Enter Artist</b></label>
<input type="text" name="message" id="user_input">
<input type="submit">
</form>
<br>
<label>Your input: </label>
<p><span id="display"></span></p>
</body>
</html>
ENDTAG
Файл api_perl.pl
##!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
say "Content-Type: text/html\n";
say "
<p>The database contains the following:</p>
<table cols=3 border=1>
<tr>
<th>Title</th>
<th>Year</th>
<th>Album</th>
</tr>
";
while(<DATA>) {
next if /^\s*$/;
chomp;
my($song,$year,$album) = split ',';
say "<tr><td>$song</td><td>$year</td><td>$album</td></tr>";
}
say "
</table>
";
__DATA__
Downhill Stuff,1979,Album 1
Dreamland Express,1985,Album 2
Love Is The Master,1986,Album 1
Windsong,1975,Album 1
Catch Another Butterfly,1969,Album 2
Cowboy's Delight,1975,Album 1
How Can I Leave You Again,1977,Album 1
Love Again,1986,Album 1
Sail Away Home,1970,Album 1
Sweet Melinda,1979,Album 1
Daydream,1969,Album 1
Gimme Your Love,1985,Album 1
Hold On Tightly,1234,Album 1
I Can't Escape,1986,Album 1
It's A Possibility,1986,Album 1
Let Us Begin (What Are We Maki),1986,Album 1
Love Again,1986,Album 1
Love Is The Master,1986,Album 1
One World,1986,Album 1
To The Wild Country,1977,Album 1
Dreams,1982,Album 1
Forest Lawn,1970,Album 1
Got My Heart Set On You,1985,Album 1
Tradewinds,1977,Album 1
Circus,1969,Album 1
Eagles & Horses,1990,Album 1
Flight (The Higher We Fly),1983,Album 1
Life Is So Good,1979,Album 1
The Ballad Of St. Anne's Reel,1980,Album 1
Hold On To Me,1991,Album 1
The Harder They Fall,1985,Album 1
What One Man Can Do,1982,Album 1
Johnny B. Goode,1979,Album 1
Shanghai Breezes,1982,Album 1
Take Me Home - Country Roads,1971,Album 1
Wrangell Mountain Song,1980,Album 1
A Wild Heart Looking For A Home,1985,Album 1
Wild Montana Skies,1983,Album 1
Heart To Heart,1982,Album 1
Relatively Speaking,1982,Album 1
Gospel Changes,1971,Album 1
Around And Around,1971,Album 1
Druthers,1977,Album 1
Garden Song,1979,Album 1
Файл styles.css
(поместите в root веб-каталог или отредактируйте <link rel='stylesheet' href='/styles.css'>
и укажите href на правильное расположение styles.css
файла - отредактируйте основной perl файл с формой)
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 4px;
}
tr:nth-child(even) {
background-color: #dddddd;
}