• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zeroonnet

[Resolvido] Fazer post com javascript

17 mensagens neste tópico

Boas,

tipo queria que ao clicar num botao ele envia-se um TEXTO via POST para outra pagina. Como funcionam os forms mas em javascript.

Como é que se faz? :S

Fiquem Bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas o texto está dentro de um form? se tiver o javascript é só document.nomeDoForm.submit()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não o texto estará numa variavel no javascript e depois quero enviar esse texto via POST.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então só utilizando o mesmo método que o AJAX utiliza, não conheço outra maneira, a não ser que queiras criar um form onthefly com um input hidden e meteres lá o conteúdo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se é para 'enviar para o POST' isso é como quem diz: "fazer um pedido HTTP do tipo POST". Em javascript isso é feito usando o xmlhttprequest()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então só utilizando o mesmo método que o AJAX utiliza, não conheço outra maneira, a não ser que queiras criar um form onthefly com um input hidden e meteres lá o conteúdo.

o problema e que o conteudo vai estar numa cena javascript que é o CodePress (codepress.org) e só com javascript consigo puxar o que tá nele.

Se é para 'enviar para o POST' isso é como quem diz: "fazer um pedido HTTP do tipo POST". Em javascript isso é feito usando o xmlhttprequest()

Vou ver isso do xmlhttprequest()

Edit:

O xmlhttprequest() nao é bem o que quero. Eu quero que ao clicar num botao me envie X texto que eu tenho numa variavel, como POST . Ou seja muda pa pagina que eu meto e depois via php eu consigo ir buscar ao $_POST[] a tal variavel X.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema e que o conteudo vai estar numa cena javascript que é o CodePress (codepress.org) e só com javascript consigo puxar o que tá nele.

Vou ver isso do xmlhttprequest()

Edit:

O xmlhttprequest() nao é bem o que quero. Eu quero que ao clicar num botao me envie X texto que eu tenho numa variavel, como POST . Ou seja muda pa pagina que eu meto e depois via php eu consigo ir buscar ao $_POST[] a tal variavel X.

o xmlhttprequest tanto pode ser assincrono como sincrono, acho que podes fazer isso bem dessa maneira.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

function save(path)
{
var client = new XMLHttpRequest();
client.onreadystatechange = handler;
client.open("POST", path);
client.setRequestHeader("write",code.getCode());
client.send();
}

tentei assim mas nao consegui :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Thanks com o artigo já consegui algo :P

usei este codigo:

var xmlHttp

function MakeXmlHttpObject()
{
var xmlHttp = null;
try
{
	//XmlHttpRequest para Firefox, Opera, Safari e derivados.
	xmlHttp = new XMLHttpRequest();
	alert('criado');
}
catch (e)
{
	//XmlHttpRequest para Internet Explorer.
	try
	{
		// Internet Explorer 6.0+
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		// Internet Explorer.
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}
return xmlHttp;
}

function stateChanged()
{
if (xmlHttp.readyState == 4)
{
	alert('reload');
	window.location.reload();
}
}

function Gravar(q)
{
xmlHttp = MakeXmlHttpObject();

if (xmlHttp == null)
{
	alert("O browser nãi suporta AJAX!");
	return;
}

var parametros = "write=" + encodeURI(code.getCode());
alert(parametros);
alert(q);
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("POST",q, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-lenght", parametros.lenght);
xmlHttp.send(parametros);
}

Ele envia muito bem para o server mas envia aquilo com escapes... ou seja se tiver lá cenas tipo :

'texto bla bla bla''''''''''''' mekie

isto vai ficar com escapes antes dos ' e eu ou nao queria envialos ou queria depois no servidor tiralos e nao sei como :S

Será que podem ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

thanks tirácio e a restantes xD já está a funcar a 100%

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tipo queria que ao clicar num botao ele envia-se um TEXTO via POST para outra pagina. Como funcionam os forms mas em javascript.

(...)

não o texto estará numa variavel no javascript e depois quero enviar esse texto via POST.

Se percebi bem, o que procuras é algo deste género:

<html>
    <head>
        <title>Teste JS</title>
        <script type='text/javascript'>
            function envia_form() {
                var strEscondida = 'esta string vai ser enviada como o valor do campo escondido';
                document.getElementById('var_escondida').value = strEscondida;
            }
        </script>
    </head>
    <body>
        <?php 
        if ($_POST['var_escondida']) {
            echo $_POST['var_escondida'];
        }
        ?>
        <form action='' method='post' name='form_teste' id='form_teste' onsubmit='envia_form();'>
            <input type='hidden' name='var_escondida' value='' id='var_escondida' />
            <input type='submit' value='Enviar!' />
        </form>
    </body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não o que eu queria ja consegui. nao pode ser assim pois ele nao tem as cenas no codigo ele vai buscar a um javascript o texto que e pa enviar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nao pode ser assim pois ele nao tem as cenas no codigo ele vai buscar a um javascript o texto que e pa enviar

O que é isso de 'vai buscar a um javascript'?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipo eu tenho na minha pagina o CodePress (www.codepress.org) para veres o que é e para ter o que está lá escrito preciso de usar uma função que é a code.getCode();...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora