PHP e JavaScript

25/03/2013

0

PHP

Estou precisando passar um parâmetro para uma função do JavaScript e não estou conseguindo.

A ideia é a seguinte:

Tenho código PHP que faz o login e cria a sessão com o usuário logado, até aqui tudo bem.

Tenho uma função em JavaScript que irá carregar a página php após 5 segundos com os dados do usuário.

A função seria userLogado(param1,param2). A dificuldade é que não executa a função. Se eu colocar um Select e colocar a função no OnChange ele executa sem problemas, mas quando eu coloco um botão para chamara função, ela não funciona.

Segue abaixo a função:

var xmlHttp
function showUser(str,fnc) { 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Navegador não suporta HTTP Request")
return
}
var url="user.php"
url=url+"?usuario="+str
url=url+"&tipo=inc"
url=url+"&op="+Math.random()

xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged() { 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
} 
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
//Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Paulo Andrade

Paulo Andrade

Responder

Posts

13/04/2013

Marcio Araujo

ainda continua com o problema amigo???
Responder

21/05/2013

Paulo Andrade

ainda continua com o problema amigo???



Estou sim. eu quero montar um site de leilões. no caso, dentro de 20 segundos o usuário terá que dar um lance ou então o último da dar o lance leva produto como acontece no Mukirana e outros sites do ramo.
Responder

21/05/2013

Marcio Araujo

interessante, infelizmente não tenho esse conhecimento.
Responder

24/10/2013

Paulo Andrade

Será que ninguém faz ideia?
Responder

24/10/2013

Claudio Lopes

eu utilizo muito o javascrip nas minhas aplicações, quando tenho que passar um parametro uso $.post, já tentou usar isso? assim vc carrega uma variavel js com dados do usurio vindo do php
Responder

01/11/2013

Leandro Richard

PAULO HENRIQUE DOS SANTOS ANDRADE,
Poderia postar todo seu código, html/javascript.

Você disse que utilizando um botão para chamar a função não funciona, em qual momento este botão está sendo clicado, pois será ele que irá disparar a ação.
Responder

04/11/2013

Paulo Andrade

PAULO HENRIQUE DOS SANTOS ANDRADE,
Poderia postar todo seu código, html/javascript.

Você disse que utilizando um botão para chamar a função não funciona, em qual momento este botão está sendo clicado, pois será ele que irá disparar a ação.



Segue abaixo o código da página para dar o lance no produto em leilão:

<?php @require_once('includes/seguranca.php'); // Inclui o arquivo com o sistema de segurança ?>
<?php @protegePagina();// Chama a função que protege a página ?>
<?php //" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Chico Barato</title>
<script src="js/selectauction.js"></script>
<script src="js/selectuser.js"></script>
<SCRIPT language=JavaScript>
function controle(form1) {
var test = document.form1.input.value;
	showUser(test);
}
</SCRIPT>
<script language="javascript">
var execauction = <?php if ($_SESSION['seg'] > 0) { echo '"showAuction()"';}else{ echo '"auctionclose()"';} ?>;
function auctiontime() {
	window.setInterval(execauction, 1000);
	clearInterval(1000);
}
function auctionclose() {
	clearInterval(0);
}
</script>
<style type="text/css">
/*<![CDATA[*/
<!--
	@import "css/apresentacao.css";
-->
/*}}>*/
</style>
</head>
<body>
<h1>Chico Barato - Tudo a preço de banana</h1>
<?php if (isset($_GET['auctionbox'])) {?>
<?php @include('auctionbox.php'); ?>
<?php } ?>
<?php if (isset($_GET['auctionview'])) {?>
<?php @include('auctionview.php'); ?>
<?php } ?>
<div id="txtHint">
<a href="javascript:showAuction(); auctiontime();">Leilões</a><BR />
</div>
<BR>
<?php
	echo "<a href=\"valida.php?acao=logoff\">Logoff</a>. User: ". $_SESSION['usuarioLogin'];
?>
<BR>
</body>
</html>
Responder

06/11/2013

William

Paulo analisando seu script me chamou a atenção essa linha:
var execauction = <?php if ($_SESSION['seg'] > 0) { echo '"showAuction()"';}else{ echo '"auctionclose()"';} ?>;


Usando uma condição ternária, retornando o valor para uma variável PHP e dando um echo nessa variável pode funcionar. Retirei algumas aspas !!!
<?php echo $teste = ($_SESSION['seg'] > 0) ? 'showAuction();' : 'auctionclose();' ; ?>


Obs: Esse função showAuction() está em outro script, porque nesse código que você passou não existe!
Responder

07/11/2013

Paulo Andrade

Paulo analisando seu script me chamou a atenção essa linha:
var execauction = <?php if ($_SESSION['seg'] > 0) { echo '"showAuction()"';}else{ echo '"auctionclose()"';} ?>;


Usando uma condição ternária, retornando o valor para uma variável PHP e dando um echo nessa variável pode funcionar. Retirei algumas aspas !!!
<?php echo $teste = ($_SESSION['seg'] > 0) ? 'showAuction();' : 'auctionclose();' ; ?>


Obs: Esse função showAuction() está em outro script, porque nesse código que você passou não existe!


Esse código está no selectauction.js abaixo:

var xmlHttp
function showAuction() { 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Navegador não suporta HTTP Request")
return
}
var url="auctionview.php"
url=url+"?q="
url=url+"&f=sel"
url=url+"&sid="+Math.random()

xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged() { 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
} 
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
//Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Responder

24/11/2013

Lucas Davies

Amigo, utilize algum Framework.

É claro que o conhecimento inerente ao PHP em si tem que se ter.
Mas, vai de Codeigniter, Zend. Eles vão facilitar sua vida.

Mas como eu já disse: aprenda PHP pra valer.

É como saber jQuery sem saber bem Javascript (lamentável).

Abraços.

Atenciosamente,

Lucas Garcia Daveis
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar