2014-12-03 7 views
1

Мне просто нужен простой пример того, как отправить форму в Perl-скрипт и получить простой ответ, я думаю, что в этом примере кода чего-то не хватает, и я не могу понять это из. Если кто-то может сказать, что это хороший способ начать или где проблема, спасибо за помощь.
Вот что я использую:

HTML-файл:Отправить форму с помощью jQuery получить ответ от скрипта Perl

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 /strict.dtd"> 
<html> 
<head> 
<title>jQuery.post demo</title> 
<script src="jquery-1.4.1.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 

// Attach a submit handler to the form 
$("#searchForm").submit(function(event) { 

// Stop form from submitting normally 
event.preventDefault(); 

// Get some values from elements on the page: 
var $form = $(this), 
namev  = $form.find("input[name='name']").val(), 
agev  = $form.find("input[name='age']").val(), 
url  = $form.attr("action"); 
alert(url); 

// Send the data using post 
var posting = $.post(url, { name: namev, age: agev }); 

// Put the results in a div 
posting.done(function(data) { 

//var content = $(data).find("#content"); 

$("#result").empty().append(data); 

}); 

}); 

</script> 

</head> 
<body> 

<p>jQuery.post</p> 

<form action="form_1.pl" id="searchForm"> 
<input type="text" name="name" placeholder="Search..."> 
<input type="text" name="age"> 
<input type="submit" value="Search"> 
</form> 

<!-- the result of the search will be rendered inside this div --> 
<div id="result"></div> 

</body> 
</html> 

Вот тестовый файл Perl:

#!/usr/bin/perl 

use strict; 
use warnings; 
use CGI; 
use CGI::Carp qw(fatalsToBrowser); 

my $c = new CGI; 

print $c->header(); 

if ('POST' eq $c->request_method && $c->param('name')) { 

# yes, parameter exists 
# print $c->param('name'); 
my $name = $c->param('name'); 
my $age = $c->param('age'); 

print "<span style='color:red'>Welcome <b>$name</b>. So you're <b>$age</b> years old eh?</span>"; 

}else { 

    print "--"; 

} 

Спасибо!

+0

выглядит правильно, вы можете увидеть какой-либо ответ на все? Установлен ли apache для выполнения CGI? –

+1

Почему такая древняя версия jQuery? – Barmar

+1

«Я думаю, что в этом образце кода чего-то не хватает, и я не могу понять». Это не очень полезное описание вашей проблемы. Почему вы думаете, что чего-то не хватает? Какое неожиданное поведение вы видите? Есть ли что-либо в журнале ошибок веб-сервера? –

ответ

1

Я завернул код с

$(document).ready(function() { ... }); 

и теперь он работает, как это должно быть.

(Self-ответил Андре в комментариях)

Смежные вопросы