jQuery Ajax CGI: скрипт загрузки - PullRequest
1 голос
/ 29 апреля 2011

Я пытаюсь загрузить содержимое моего скрипта Perl CGI на страницу HTML..load() не работает.Пожалуйста, скажите мне, что здесь не так:

$(document).ready(function() {
  $('input:checkbox').change(function() {
    var nom = $(this).attr("value");
    if ($(this).is(':checked')) {
      alert('okok');
      $('body').load("../cgi-bin/essai.pl");
    } else {
      //$("#" + nom).remove();
    }
  });

Мне бы хотелось:

  • Когда я отмечаю чекбокс (который имеет значение "toto"), загружайте (в Ajax) эссе.pl? param = toto
  • Когда я снимаю этот флажок, убираю загруженное ранее содержимое.

Надеюсь, у кого-то есть немного времени, чтобы помочь мне покинуть этот кошмар jQuery.
Bye.

1 Ответ

2 голосов
/ 29 апреля 2011

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

Что вам нужно сделать, так это выделить выделенный блок для содержимого, сгенерированного скриптом, и использовать этот блок в качестве цели вашей функции загрузки.1005 *

<body>
<div id="controller">
  <input type="checkbox" name="toto" id="toto"></input> Load / unload content
  </div>
<div id="target">
  Content comes here
  </div>
</body>

JavaScript:

$('input:checkbox').change(function(){
    if ( $(this).is(':checked') ) {
      var target_url = "../cgi-bin/essai.pl?param="+$(this).attr('name');
      $('div#target').load(target_url);
    }
    else {
      $("div#target").html('');
    }
});

Я бы также воздержался от определения относительного пути типа "../cgi-bin/" и использовал бы вместо него абсолютный путь.

Рабочий пример доступен по адресу http://jsbin.com/izuni4/19

РЕДАКТИРОВАТЬ Похоже, я не совсем понял, чего вы пытались достичь.Вот отредактированная версия того же javascript, который добавляет / удаляет блоки контента, запускаемые несколькими флажками.Надеюсь, что решит вашу проблему:

http://jsbin.com/izuni4/22/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...