25/03/2013

PHP e JavaScript

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;
}

PHP

Sid Soluções

Respostas

13/04/2013

Marcio Araujo

ainda continua com o problema amigo???
Responder Citar

21/05/2013

Sid Soluções

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 Citar

21/05/2013

Marcio Araujo

interessante, infelizmente não tenho esse conhecimento.
Responder Citar

24/10/2013

Sid Soluções

Será que ninguém faz ideia?
Responder Citar

24/10/2013

Din

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 Citar

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 Citar

04/11/2013

Sid Soluções

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 Citar

06/11/2013

William (devwilliam)

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 Citar

07/11/2013

Sid Soluções

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 Citar

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 Citar