вызывать Ajax в Perl?

-3
#!/usr/bin/perl
print "Content-type: text/html \n\n";
print qq(<html>
<head>
<script type="text/javascript" src="/jquery.js"></script>
<script>
jQuery(document).ready(function(){
jQuery("#form_lang").submit(function(e){

    var str = jQuery(this).serialize();
    alert("dfdaf"); 
    jQuery.ajax({
        type: "POST",
        url:"contacts.pl",
        success: function(){
        jQuery("#note").ajaxComplete(function(event, request, settings){
                    if(msg == 'OK') 
                            alert("Your message!");
                });
            },
          });
});
});
</script>
</head>

Вот часть формы:

<form id ="form_lang" action="helloworld.pl" method="POST">
<p>Enter Language: </p>
<input type="text" id="lang" name="lang"  /><br/>
<p>Enter Description: </p>
<textarea id="lang_desc" name="lang_desc"  ></textarea><br/>
<input type="submit" value="submit"  />

Здесь контроль идет вверх до предупреждения ("dfdaf"). И после этого он отправляется на helloworld.pl... Контакт.spl не передается. как позвонить? Заранее спасибо

  • 0
    Не пишите программы на Perl без use strict; use warnings; , Не пишите документы HTML без стандартного режима, запускающего Doctype.
  • 0
    Для меня это выглядит так, как будто ваш qq( синтаксис - проблема. ) Везде в вашем HTML. Попробуйте использовать другой символ, например ~ , или используйте здесь документ.
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

Когда вы отправите форму, будет отправлено событие отправки. Это вызовет обработчик отправки, который запустит запрос Ajax.

Затем браузер отправит форму как обычно (потому что ничто не останавливает ее).

Браузер загрузит новую страницу и удалит среду, в которой работает JavaScript. Ajax будет отменен (возможно, что запрос может пройти к серверу, но ответ не будет обработан браузером).

Если вы хотите делать что-то, когда форму отправляется, то сделайте это в helloworld.pl

Используйте Ajax, когда вы хотите общаться с сервером, не выходя из страницы.

(Вы также можете отменить отправку формы, а затем использовать JS для повторной отправки, когда запрос Ajax возвращается... но это сложнее и неэффективно).

0

Вы не называете Ajax от Perl.

Вы пишете Javascript с Perl.

Javascript будет отправлен с сервера, а затем выполнен в браузере.

И я предполагаю, что браузер не находит "contacts.pl".

Q: Вы получаете сообщение об ошибке в окне браузера (например, "404" или "500")?

В: Вы видите что-либо на сервере ошибки и/или журналы доступа?

  • 0
    Нет ... это просто направлено на helloworld.pl? я спрашиваю, есть ли альтернатива, кроме написания JS с Perl ...
  • 0
    нет сообщения об ошибке .. Это LYK, выходящий из AJAX части!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню