Ir para conteúdo
Fórum Script Brasil
  • 0

Como chamar a função?


Trevoso

Pergunta

Meus Amigos,

Sou iniciante na programação PHP+JavaScript e estou com a seguinte dificuldade:

Estou fazendo um cadastro de livros e agora surgiu uma necessidade:

Em um formulário, tenho duas linhas com os seguintes dados:

Editora:xxxxxxxxx Edição:xxxxxxxxxxxxx Ano:xxxxxxxxxxxxx Código de Barras:

ISBN:xxxxxxxxxxxx Localização:xxxxxxxx Pzo de Emp:xxxxxx Quantidade:

Uso Select para o campo editora e ele puxa todas as editoras do banco com a seguinte rotina:

<select class="flip" size="1" name="editora" style="width:160px">

<option selected value="Selecione...">Selecione...</option>

<?php

$resultadoe = mysql_query("SELECT * FROM editora Order by NomeEditora ASC") or die(mysql_error());

$resultadoeditora = mysql_num_rows($resultadoe);

while ($linhaeditora = mysql_fetch_array($resultadoe))

{

?> <option value="<?php echo $linhaeditora["NomeEditora"]?>"><?php echo $linhaeditora["NomeEditora"] ?></option><?php } ?>

<option value="NOVO">NOVO</option>

</select>

Uso o seguinte script para a classe flip:

<script type="text/javascript">

$(document).ready(function(){

$(".flip").change(function(){

if (document.formulario1.editora.value == "NOVO") {

$(".panel").slideToggle("slow");

}

});

});

</script>

Isso funciona perfeitamente! Faço a tela deslizar para baixo e aparece um campo para eu digitar uma Nova Editora, pois, isto significa que a Editora que se deseja cadastrar, ainda não está na Base de Dados.

Esse novo campo está definido assim:

<p class="panel">

<label>

<span>Nova Editora:</span>

<input class="n_editora" type="text" id= name="nova_editora" size="31" maxlength="60"/>

</label>

</p>

Acho que é a partir daqui que vem meu erro e não consigo fazer funcionar.

Como você viu lá em cima, o próximo campo a ser digitado é "EDIÇÃO". Na teoria, desejo ao clicar neste campo, gravar a Editora desejada e voltar a tela ao estado inicial, ou seja, deslizar para cima e sumir com o campo que surgiu.

Voltar ao normal eu consigo da seguinte maneira. O campo Edição está definido assim:

<label>

<span>Edição:</span>

<input class="flip3" type="text" name="edicao" size="14" maxlength="2" onkeypress="return handleEnter(this, event)"/>

</label>

E para a classe flip3 tenho o seguinte script:

<script type="text/javascript">

$(document).ready(function(){

$(".flip3").focus(function(){

$(".panel").slideToggle("slow");

});

});

</script>

Ou seja, volta ao estado normal da tela, desliza para cima e o campo da Nova editora some novamente.

A partir daqui que meu status de iniciante está me dando dor de cabeça:

Estou tentando chamar a seguinte função.......

<script type="text/javascript">

function nova_janela(){

document.formulario1.editora.value = document.formulario1.nova_editora.value;

LeftPosition = (screen.width) ? (screen.width-450)/2 : 0;

TopPosition = (screen.height) ? (screen.height-450)/2 : 0;

settings = 'height=450, width= 450,top='+TopPosition+',left='+LeftPosition+',scrollbars=no, resizable';

window.open('cadastro_nova_editora.php'+'?editora='+document.formulario1.nova_editora.value,' ',settings);

};

</script>

(esta função - na teoria - colocará o nome da nova editora no OPTION - e me permitirá gravar o nome da editora, através de rotina php, na página que se abrirá)

......... acrescentando uma linha no script acima:

<script type="text/javascript">

$(document).ready(function(){

$(".flip3").focus(function(){

==========>>>> nova_janela();

$(".panel").slideToggle("slow");

});

});

</script>

Ao acrescentar esta linha, nada funciona. Nem abre a nova janela, nem faz o slider para voltar ao estado inicial.

E aí. Como posso resolver isso?

Abraços

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

fiz uma alteração nas duas primeiras linhas da função

function nova_janela(){
document.formulario1.editora[<?php echo $resultadoeditora; ?>].text = document.formulario1.nova_editora.value;
document.formulario1.editora[<?php echo $resultadoeditora; ?>].value = document.formulario1.nova_editora.value
LeftPosition = (screen.width) ? (screen.width-450)/2 : 0;
TopPosition = (screen.height) ? (screen.height-450)/2 : 0;
settings = 'height=450, width= 450,top='+TopPosition+',left='+LeftPosition+',scrollbars=no, resizable';
window.open('cadastro_nova_editora.php'+'?editora='+document.formulario1.nova_editora.value,' ',settings);    
};
Essas duas linhas acessam as propriedades value e text da opção que originalmente era "NOVO" e substitui pelo valor digitado em nova_editora tive um problema com essa linha
<input class="n_editora" type="text" id= name="nova_editora" size="31" maxlength="60"/>

que fazia com que o javascript não achasse o input dai foi só tirar o id que ta perdido ali no meio, não sei se foi só na pressa de digitar aqui rsr

Espero ter ajudado Abrass

Editado por Markus Magnus
Link para o comentário
Compartilhar em outros sites

  • 0

Markus, obrigado pelas dicas. Clareou a minha mente, mas, por algum motivo não criou a option com a nova Editora. Pesquisei mais e passou a funcionar do seguinte modo:

var elem = document.getElementById("editora");

var editora1 = document.createElement("option");

editora1.text = document.formulario1.nova_editora.value;

editora1.value = document.formulario1.nova_editora.value;

elem.options.add(editora1);

var vindice = elem.options.length;

elem.options[vindice-1].selected = true;

Assim, ele cria um novo option (ao invés de mudar o NOVO) e seleciona. Dessa maneira, quando der submit, já vai pelo _POST o nome da nova editora.

Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...