Array
(
)

PHP e JavaScript

PHP
Sid Soluções
|
MVP
Pontos: 100
    25 mar 2013

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:
#Código

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

Marcio Araujo
   - 13 abr 2013

ainda continua com o problema amigo???

Sid Soluções
|
MVP
Pontos: 100
    21 mai 2013


Citação:
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.

Marcio Araujo
   - 21 mai 2013

interessante, infelizmente não tenho esse conhecimento.

Sid Soluções
|
MVP
Pontos: 100
    24 out 2013

Será que ninguém faz ideia?

Din
|
MVP
Pontos: 45
    24 out 2013

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

Leandro_richard
   - 01 nov 2013

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.

Sid Soluções
|
MVP
Pontos: 100
    04 nov 2013


Citação:
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:

#Código

<?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>

William (devwilliam)
   - 06 nov 2013

Paulo analisando seu script me chamou a atenção essa linha:
#Código

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 !!!
#Código
<?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!

Sid Soluções
|
MVP
Pontos: 100
    07 nov 2013


Citação:
Paulo analisando seu script me chamou a atenção essa linha:
#Código

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 !!!
#Código
<?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:

#Código
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;
}

Lucas Davies
   - 24 nov 2013

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