Jump to content
Fórum Script Brasil
  • 0

Como chamar a função?


Trevoso

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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

Edited by Markus Magnus
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...