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

blasted

php / js

6 mensagens neste tópico

Boas, estou com um problema em conseguir registar variáveis em php através de funções de javascript, será que alguem me consegue ajudar?

<script type="text/javaScript">
function confirma()
{
	var r=confirm("Deseja continuar?")
	return r
}
function disa_a()
{
	document.search_a.search_que.disabled = false;
}
function disa_b()
{
	document.search_a.search.disabled = false;
             <?php $_SESSION['var_trig'] = 1;?>;
}
function reg_id(var_a)
{
             document.reg_u.sidd.value = var_a;
            <?php $_SESSION['var_trig'] = 0;?>;
}
</script>

O que eu quero, é passar uma variável de javascript para php caso execute uma função, se fosse o contrário seria tudo mais fácil.

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

De javascript para php penso que nao seja possivel porque javascript é um linguagem client-side enquanto que o php é server-side. Ou seja so poderas passar variaveis de php para javascript e nao o contrario.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda ^_^

Sendo assim, vou expor o meu problema de outra forma, talvez assim consiga outro tipo de solução para o problema em si.

Tenho um search no meu backoffice, do qual me sirvo para procurar o id de um cliente, para depois registar clientes. O problema é que a variável de pesquisa está sempre armazenada, e como tal, sempre que entro na página de pesquisa, é me dado um enorme output, sem que tenha sequer clicado para fazer search.

<?php
function procSearch()
{
	global $database;
	switch($_POST['search_em'])
	{
		case 0:
			$q1 = 'code';
			break;
		case 1:
			$q1 = 'nome';
			break;
		case 2:
			$q1 = 'contacto';
			break;
		case 3:
			$q1 = 'nif';
			break;
		case 4:
			$q1 = 'telefone';
			break;
		case 5:
			$q1 = 'fax';
			break;
		case 6:
			$q1 = 'email';
			break;
	}
	$q3 = $_POST['search'];
	switch($_POST['search_que'])
	{
		case 0:
			$q2 = "upper($q1) like upper('$q3%')";
			break;
		case 1:
			$q2 = "upper($q1) like upper('%$q3%')";
			break;
		case 2:
			$q2 = "upper($q1) like upper('%$q3')";
			break;
		case 3:
			$q2 = "upper($q1) = upper('$q3')";
			break;
	}
	$q = "SELECT CODE,NOME FROM ".TBL_USERS." WHERE $q2 AND CLI='T' AND WEB_USERNAME IS NULL AND FIRMA = ".ID_FIRMA; 
	$result = $database->query($q);
	$num_rows = ibase_num_rows($result);
	/* Error occurred, return given name by default */
	if(!$result || ($num_rows < 0))
	{
		return;
	}
	if($num_rows == 0)
	{
		return;
	}
	echo "<table align=\"left\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\" >\n";
	echo "<tr><td><b>Username</b></td><td><b>Register</b></td></tr>\n";
	$q = "SELECT CODE,NOME FROM ".TBL_USERS." WHERE $q2 AND CLI='T' AND WEB_USERNAME IS NULL";
	$result = $database->query($q);
	for($i=0; $i<$num_rows; $i++)
	{
		$uname = ibase_fetch_row($result);
		echo "
		<tr>
		<td>$uname[1]</td>
		<td align='center'><input type=\"submit\" id=\"inputsubmit1\" value=\"Register\" onclick=\"reg_id($uname[0])\" /></td>
		</tr>\n";
	}
	echo "</table><br />\n";
}
?>

Como verificam a query é directamente execudada quando entro na página de pesquisa. Com javascript conseguiria executar a query apenas quando chamasse determinada função.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que me apercebi, e li na diagonal quando já deveria estar a dormir, mas não sei porquê, deu-me pra ler e responder a vários tópicos, só tens que dar um nome ao "submit" button, e fazer uma verificação

if (isset($_POST["nome_do_submit"]) && $_POST["nome_do_submit"])

{  executar o query...

}

Desta forma, deixa de executar automáticamente o query e somente quando fizeres o submit, este passará a ser executado.

EDIT: Post Fengshui

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