Jump to content

Recommended Posts

Posted

boas

eu no meu projecto queria fazer uma parte para comentarios de prefis, so que queria fazer em ajax, alguem me pode ajudar?

queria que mal clica-se no botao de responder ele aparece-se logo.

Posted (edited)

pois mas a minha questao é como mandar os dados, nao tou a conseguir

ja dei uma vista de olhos nesse site mas nao tem nada de mandar os dados por post, quer dizer tem mas nao me esclareceu

Edited by Rui Silva
Posted

pois mas a minha questao é como mandar os dados, nao tou a conseguir

ja dei uma vista de olhos nesse site mas nao tem nada de mandar os dados por post, quer dizer tem mas nao me esclareceu

(Ajax+PHP) Crias uma função com 1 settime no load da página por exemplo, que seja chamada de X em X tempo onde envias (POST) para o php através de AJAX e o ajax devolve-te a query

cumps,

fteixeira1993

Posted

(Ajax+PHP) Crias uma função com 1 settime no load da página por exemplo, que seja chamada de X em X tempo onde envias (POST) para o php através de AJAX e o ajax devolve-te a query

cumps,

fteixeira1993

o problema é que ai esta por get, alguem me mode fazer o scrpit onde envio por post???

pls é que nao tou a conseguir fazer esse script

Posted

Viva,

Supostamente deves ter uma DB para armazenar os comentários e etc, portanto para o php vamos ter que passar o user id da sessão iniciada, o conteúdo do comentário.

html

<input type="text" name="comentario" id="comentario">
<button onclick="EnviaComentario(userID, comentario)">Responder</button>

javascript

function EnviaComentario(UID, ComentID){

if(comentID.length == 0){

//valida se o campo esta vazio

}else{

//senão constróis a ligação aqui e envias o dados para o php

}

}

No ficheiro de php é algo idêntico a um login e onde fazes as querys à DB. Deve de ter alguns erros no código mas não estou com muito tempo agora por causa do trabalho, sorry X).

cumps,

fteixeira1993

Posted

Viva,

Supostamente deves ter uma DB para armazenar os comentários e etc, portanto para o php vamos ter que passar o user id da sessão iniciada, o conteúdo do comentário.

html

<input type="text" name="comentario" id="comentario">
<button onclick="EnviaComentario(userID, comentario)">Responder</button>

javascript

function EnviaComentario(UID, ComentID){

if(comentID.length == 0){

//valida se o campo esta vazio

}else{

//senão constróis a ligação aqui e envias o dados para o php

}

}

No ficheiro de php é algo idêntico a um login e onde fazes as querys à DB. Deve de ter alguns erros no código mas não estou com muito tempo agora por causa do trabalho, sorry X).

cumps,

fteixeira1993

obrigado por responder, mas essa parte ja tenho feita falta me a ligação, eu ja tentei fazer mas nao da, o que preciso mesmo e de fazer a ligação , nao sei como mando os valares por post no ajax

Posted

ok obrigado mas este fname é o nome que douno input no formulario?

descculpa la a minha ignorância mas eu ja vi isto e nao entendi muito bem.

como atribuo o valor ao que envio??? e o "&" é para separar as variaveis?

Posted

ok obrigado mas este fname é o nome que douno input no formulario?

descculpa la a minha ignorância mas eu ja vi isto e nao entendi muito bem.

como atribuo o valor ao que envio??? e o "&" é para separar as variaveis?

Sem stress estamos cá para aprender xD uns com os outros e explicar as coisas uns aos outros ^^

&& -> operador lógico 'e' (exemplo: se a+b=1 e 3-2=1 então é verdade)

fname -> nome da variável que utilizas para passar para o php (exemplo: <input ... name="nome"/> -> ao clicar no enviar -> php -> $user=$_POST['nome'])

É qualquer coisa como isso, alguém que me corrija se estiver errado 🙂

cumps,

fteixeira1993

Posted (edited)

desde ja muito obrigado por estas a ajudar, no meu continua a nao dar, vou por aqui o codigo, se poderes ve onde esta o erro.

Formulario:

<form>

<textarea class="form-control spacer-bottom-sm" name="comentario" ></textarea>

<input type="hidden" name="id_user" value="<?php echo $id_user ?>" />

<button class="btn btn-primary" type="button" onclick="Comentar(comentario, id_user)">Comentar</button>

</form>

---------------------------------------------------------------------

o script ajax:

<script>

function Comentar(comentario, id_user)

if (texto == "") {

document.postElementById("comentarios").innerHTML = "";

return;

} else {

if (window.XMLHttpRequest) {

// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

} else {

// code for IE6, IE5

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("comentarios").innerHTML = xmlhttp.responseText;

}

}

xmlhttp.open("POST","../funcoes/postcomentario.php",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send(texto);

}

</script>

estes estao na mesma pagina,

--------------------------------------------------------------------

e agora a outra pagina para a base de dados:

<?php

require "../bd/bd.php";

require "funcoes.php";

?>

<?php

if($_POST){

$texto=$_POST['texto'];

$id_user=$_POST['id_user'];

$comentario_de=$_SESSION['id'];

$data_comentario = date("d/m/Y h:i:s");

$sql_comentario=mysqli_query($con, "insert into comentarios(id_user, comentario_de, comentario, data) VALUES ('$id_user', '$comentario_de', '$texto', '$data_comentario') ") or die (mysql_error());

}

?>

Podes dar uma vista de olhos e ver o que ta mal?

Edited by Rui Silva
Posted

Viva,

Numa análise muito rápida verifico que falta o atributo id nos campos do formulario, sem o id o script não vai fazer nada... E no php quando verificas se existe post, tem que ser algo do género:

if(!isset($_POST['variavel'])){
//o que acontece quando existe post
}else{
//faz o que tem a fazer
}

Nota: Quando colocas pedaços de código no forum usa entre a tag CODE, no editor de texto dos posts tens o botão <> para fazer isso por ti e despejas o código dentro da caixa que te abre.

cumps,

fteixeira1993

  • Vote 1
Posted (edited)

nao sabia que era preciso os id, pensei que fosse os atributos name

<div id="comments" class="tab-pane active cont">
					 <form>
	 <textarea class="form-control spacer-bottom-sm" id="comentario" ></textarea>
						 <input type="hidden" id="id_user" value="<?php echo $id_user ?>" />
	 <button class="btn btn-primary" type="button" onclick="Comentar(comentario, id_user)">Comentar</button>
					 </form>
 </div>

meti os id's mas nao consegui nada

carrego no botao para enviar e nada

Edited by Rui Silva
Posted (edited)

Boas é pá quando mexes numa ferramenta nova tenta sempre começar pelo simples ajax ainda tem muitas coisas que podem dar para o torto por coias simplissimas que com a experiência vais melhorando e vais ver que é bue simples de usar:

Com Jquery a ajudar a simplificar podes fazer esta chamada ajax:

$.ajax({
			 url: "inc/autentication.php", // pagina que vai processar o pedido ajax em php
			 type: "POST", //POST || GET
			 dataType: "json", //json || html || xml || outras coisas ve a api jquery(ajax)
			 data : ({revert : ficheiro}), // {variavel javascript : variavel php} no ficheiro php usas assim $_POST['ficheiro']
			 error: function(){ //se quiseres indicar erros
				 alert("Ups, Something just exploded call the A-team");
			 },
			 success: function(data){ //em caso de successo fazer qualquer coisa
                $('#minhaDiv').append('Pedido Ajax feito com sucesso!');
			 }
		 });

Tens outras funções dentro do ajax como beforeSend: function... etc

Coisas a evitar:

No dataType tens que ver que tipo de dados estás a returnar do php porq caso tenhas especificado json e estiveres a devolver outra coisa creio que não dá erro acho que não devolve msm nada ficas a toa..

em php para devolveres json basta fazeres isto:

echo json_encode($minhaVariavel);

apartir deste echo json_encode convem fazeres um die() porq senão ele continua a percorrer o ficheiro e se realmente já conseguiste o que querias porq continuar a percorrer o ficheiro..

Se meteres um var_dump na pagina php que é percorrida no pedido ajax tem em conta que o pedido não processa o success mas podes ver o var_dump na console F12 e vais a network e abres a pagina php

Mais não me lembro por isso Good Luck

Edited by ItsCrazy
  • 3 weeks later...
Posted (edited)

Boas tardes,

Não sei se ainda precisas de ajuda, mas eu também já tive a mesma duvida que tu mas depois pensei...

Existe já algumas pessoas que fazem isto por nós e são projetos excelentes e for free, porque haveremos de estar a re inventar a roda ? 😄

Dá uma olha no que eu fiz no meu site.

9c8f5e8c6ddbfdd15ff087babf5960b6.png

Eu tenho uma página de noticias, onde o admin vai ao painel de admin, entra na secção para escrever a noticia, publica ela e pronto aparece no site para os leitores lerem.

Mas depois pensei...

Bem, em vez de as pessoas apenas entrarem, lerem a noticia e irem embora, porque não faço aqui uma secção de comentarios já agora para as pessoas darem o seu comentário sobre a mesma ?

E pronto, lembrei me disto 😛

É um sistema bastante completo e muito interativo 🙂

Inclusive tu podes escolheres moderadores para esta secção de noticias e tudo, podes inserir imagens em drag&drop etc etc.

Cumprimentos

Edited by pexoia
Posted (edited)

Ja agora, a disqus permite usar a conta sem ser nos comentarios ?

A conta que crias na Disqus não serve só para fazer comentários, se é isso que estás a perguntar 😛

Existem muitas coisas que podes tirar partido a partir do momento que tens conta lá.

Cumprimentos

Edited by pexoia
Posted

Não estou a perceber muito bem o que estás a querer dizer xD

Tipo a pessoa que queira ir lá comentar pode ou não ter conta na disqus, isso depende se ele quiser que o user tenha conta lá ou não.

Quanto ao ficar dependente de terceiros queres dizer o que ? xD

A Disqus é uma empresa conceituada, milhares e milhares de empresas usam a Disqus, isto se estás a querer dizer que um dia ela pode acabar e ele ficar sem os comentários é ? u_u

Isso é quase impossivel de acontecer mas pronto 😛

Só estava a dizer que ele podia ficar com uma coisa bem jeitosa, sem ter muito trabalho dado que ele está com algumas dificuldades no processo 😛

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.