script.aculo.us - Edição no local

A edição no local é uma das marcas registradas dos aplicativos do estilo Web 2.0.

A edição local consiste em pegar conteúdo não editável, como <p>, <h1> ou <div>, e permitir que o usuário edite seu conteúdo simplesmente clicando nele.

Isso transforma o elemento estático em uma zona editável (linha única ou multilinha) e exibe botões de envio e cancelamento (ou links, dependendo de suas opções) para o usuário confirmar ou reverter a modificação.

Ele então sincroniza a edição no lado do servidor por meio do Ajax e torna o elemento não editável novamente.

Para usar os recursos de edição no local do script.aculo.us, você precisará carregar os módulos controls.js e effects.js junto com o módulo prototype.js. Portanto, seu carregamento mínimo para script.aculo.us será semelhante a este -

<script type = "text/javascript" src = "/javascript/prototype.js"></script>
<script type = "text/javascript" src = "/javascript/scriptaculous.js?load = effects,controls"></script>

Criação de um editor de texto no local

Toda a sintaxe de construção é a seguinte -

new Ajax.InPlaceEditor(element, url [ , options ] )

O construtor do Ajax.InPlaceEditor aceita três parâmetros -

  • O elemento de destino pode ser uma referência ao próprio elemento ou a id do elemento de destino.

  • O segundo parâmetro para o Ajax.InPlaceEditor especifica a URL de um script do lado do servidor que é contatado quando um valor editado é concluído.

  • As opções habituais de hash.

Opções

Você pode usar uma ou mais das seguintes opções ao criar seu objeto Ajax.InPlaceEditor.

Sr. Não Opção e descrição
1

okButton

Um valor booleano que indica se um botão "ok" deve ser mostrado ou não. O padrão é verdadeiro.

2

okText

O texto a ser colocado no botão ok. O padrão é "ok".

3

cancelLink

Um valor booleano que indica se um link de cancelamento deve ser exibido. O padrão é verdadeiro.

4

cancelText

O texto do link de cancelamento. O padrão é "cancelar".

5

savingText

Uma string de texto exibida como o valor do controle enquanto a operação de salvamento (a solicitação iniciada clicando no botão ok) está em processamento. O padrão é "Salvar".

6

clickToEditText

A string de texto que aparece como a "dica de ferramenta" do controle ao passar o mouse.

7

rows

O número de linhas a serem exibidas quando o controle de edição está ativo. Qualquer número maior que 1 faz com que um elemento de área de texto seja usado em vez de um elemento de campo de texto. O padrão é 1.

8

cols

O número de colunas no modo ativo. Se omitido, nenhum limite de coluna é imposto.

9

size

O mesmo que cols, mas só se aplica quando as linhas são 1.

10

highlightcolor

A cor a ser aplicada ao plano de fundo do elemento de texto ao passar o mouse. O padrão é amarelo claro.

11

highlightendcolor

A cor para a qual a cor de destaque desaparece como um efeito.

Note - o suporte parece irregular em alguns navegadores.

12

loadingText

O texto que aparecerá dentro do controle durante uma operação de carregamento. O padrão é "Carregando".

13

loadTextURL

Especifica a URL de um recurso do lado do servidor a ser contatado para carregar o valor inicial do editor quando ele entrar no modo ativo. Por padrão, nenhuma operação de carregamento de backend ocorre e o valor inicial é o texto do elemento de destino.

14

externalControl

Um elemento que serve como um "controle externo" que aciona a colocação do editor em um modo ativo. Isso é útil se você quiser que outro botão ou outro elemento acione a edição do controle.

15

ajaxOptions

Um objeto hash que será passado para o objeto Prototype Ajax subjacente para usar como hash de opções.

Opções de retorno de chamada

Além disso, você pode usar qualquer uma das seguintes funções de retorno de chamada no parâmetro de opções

Sr. Não Descrição da função
1

onComplete

Uma função JavaScript que é chamada após a conclusão bem-sucedida da solicitação de salvamento. O padrão aplica um efeito de realce ao editor.

2

onFailure

Uma função JavaScript que é chamada em caso de falha da solicitação de salvamento. O padrão emite um alerta mostrando a mensagem de falha.

3

callback

Uma função JavaScript que é chamada antes de enviar a solicitação de salvamento para obter a string de consulta a ser enviada à solicitação. A função padrão retorna uma string de consulta igualando o parâmetro de consulta "valor" ao valor no controle de texto.

Opções de estilo CSS e id de DOM

Você também pode usar uma das seguintes opções para controlar o comportamento do editor no local -

Sr. Não Opção e descrição
1

savingClassName

O nome da classe CSS aplicado ao elemento enquanto a operação de salvamento está em andamento. Esta classe é aplicada quando é feita a solicitação do URL de salvamento e removida quando a resposta é retornada. O valor padrão é "inplaceeditor-saving".

2

formClassName

O nome da classe CSS aplicado ao formulário criado para conter o elemento editor. O padrão é "inplaceeditor-form".

3

formId

O id aplicado ao formulário criado para conter o elemento editor.

Exemplo

<html>
   <head>
      <title>Simple Ajax Auto-completer Example</title>
		
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      <script type = "text/javascript"  src = "/javascript/scriptaculous.js?load = effects,controls"></script>
      
      <script type = "text/javascript">
         window.onload = function() {
            new Ajax.InPlaceEditor(
               'theElement',
               '/script.aculo.us/transform.php',
               {
                  formId: 'whatever',
                  okText: 'Upper me!',
                  cancelText: 'Never mind'
               }
            );
         }
      </script>
   </head>
   
   <body>
      <p>Click over the "Click me!" text and then change text and click OK.</p>
      <p>Try this example with different options.</p>

      <div id = "theElement">
         Click me!
      </div>		
   </body>
</html>

Quando exibido, clique e edite o texto. Esse script PHP bastante trivial converte o valor de um parâmetro de consulta com a chave "valor" em seu equivalente em maiúsculas e grava o resultado de volta na resposta.

Aqui está o conteúdo do script transform.php.

<?php
   if( isset($_REQUEST["value"]) ) { $str = $_REQUEST["value"]; $str = strtoupper($str); echo "$str";
   }
?>

Isso produzirá o seguinte resultado -

As opções do editor de coleção local

Há mais um objeto chamado Ajax.InPlaceCollectionEditor, que oferece suporte à edição no local e oferece a opção de selecionar um valor entre as opções fornecidas.

Toda a sintaxe de construção é a seguinte -

new Ajax.InPlaceCollectionEditor(element, url [ , options ] )

O construtor do Ajax.InPlaceCollectionEditor aceita três parâmetros:

  • O elemento de destino pode ser uma referência ao próprio elemento ou a id do elemento de destino

  • O segundo parâmetro para o Ajax.InPlaceEditor especifica a URL de um script do lado do servidor que é contatado quando um valor editado é concluído.

  • As opções habituais de hash.

Opções

Além da adição da opção de coleção, a lista de opções para o Editor de coleção no local é um subconjunto das opções herdadas do Editor de texto no local.

Sr. Não Opção e descrição
1

okButton

Um valor booleano que indica se um botão "ok" deve ser mostrado ou não. O padrão é verdadeiro.

2

okText

O texto a ser colocado no botão ok. O padrão é "ok".

3

cancelLink

Um valor booleano que indica se um link de cancelamento deve ser exibido. O padrão é verdadeiro.

4

cancelText

O texto do link de cancelamento. O padrão é "cancelar".

5

savingText

Uma string de texto exibida como o valor do controle enquanto a operação de salvamento (a solicitação iniciada clicando no botão ok) está em processamento. O padrão é "Salvar".

6

clickToEditText

A string de texto que aparece como a "dica de ferramenta" do controle ao passar o mouse.

7

Highlightcolor

A cor a ser aplicada ao plano de fundo do elemento de texto ao passar o mouse. O padrão é amarelo claro.

8

Highlightendcolor

A cor para a qual a cor de destaque desaparece como um efeito.

Note - o suporte parece irregular em alguns navegadores.

9

Collection

Uma matriz de itens que devem ser usados ​​para preencher as opções do elemento selecionado.

10

loadTextUrl

Especifica a URL de um recurso do lado do servidor a ser contatado para carregar o valor inicial do editor quando ele entrar no modo ativo. Por padrão, nenhuma operação de carregamento de backend ocorre e o valor inicial é o texto do elemento de destino. Para que essa opção seja significativa, ela deve retornar um dos itens fornecidos na opção de coleção a ser definido como o valor inicial do elemento selecionado.

11

externalControl

Um elemento que serve como um "controle externo" que aciona a colocação do editor no modo ativo. Isso é útil se você quiser que outro botão ou outro elemento acione a edição do controle.

12

ajaxOptions

Um objeto hash que será passado para o objeto Prototype Ajax subjacente para usar como hash de opções.

Opções de retorno de chamada

Além disso, você pode usar qualquer uma das seguintes funções de retorno de chamada no parâmetro de opções -

Sr. Não Descrição da função
1

onComplete

Uma função JavaScript que é chamada após a conclusão bem-sucedida da solicitação de salvamento. O padrão aplica um efeito de realce ao editor.

2

onFailure

Uma função JavaScript que é chamada em caso de falha da solicitação de salvamento. O padrão emite um alerta mostrando a mensagem de falha.

Opções de estilo CSS e id de DOM

Você também pode usar uma das seguintes opções para controlar o comportamento do editor no local -

Sr. Não Opção e descrição
1

savingClassName

O nome da classe CSS aplicado ao elemento enquanto a operação de salvamento está em andamento. Esta classe é aplicada quando é feita a solicitação do URL de salvamento e removida quando a resposta é retornada. O valor padrão é "inplaceeditor-saving".

2

formClassName

O nome da classe CSS aplicado ao formulário criado para conter o elemento editor. O padrão é "inplaceeditor-form".

3

formId

O id aplicado ao formulário criado para conter o elemento editor.

Exemplo

<html>
   <head>
      <title>Simple Ajax Auto-completer Example</title>
		
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      <script type = "text/javascript"  src = "/javascript/scriptaculous.js?load = effects,controls"></script>
      
      <script type = "text/javascript">
         window.onload = function() {
            new Ajax.InPlaceCollectionEditor(
               'theElement',
               '/script.aculo.us/transform.php',
               {
                  formId: 'whatever',
                  okText: 'Upper me!',
                  cancelText: 'Never mind',
                  collection: ['one','two','three','four','five']
               }
            );
         }
      </script>
   </head>
   
   <body>
      <p>Click over the "Click me!" text and then change text and click OK.</p>
      <p>Try this example with different options.</p>
		
      <div id = "theElement">
         Click me!
      </div>
   </body>
</html>

Aqui está o conteúdo do script transform.php.

<?php
   if( isset($_REQUEST["value"]) ) { $str = $_REQUEST["value"]; $str = strtoupper($str); echo "$str";
   }
?>

Aqui está o conteúdo do script transform.php.

<?php
   if( isset($_REQUEST["value"]) ) { $str = $_REQUEST["value"]; $str = strtoupper($str); echo "$str";
   }
?>

Quando exibido, clique e selecione uma das opções exibidas. Esse script PHP bastante trivial converte o valor do parâmetro de consulta com a chave "valor" em seu equivalente em maiúsculas e grava o resultado de volta na resposta.

Use nosso compilador online para uma melhor compreensão do código com as diferentes opções discutidas na tabela acima.

Isso produzirá o seguinte resultado -