Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto_S_Luz

[Resolvido] Pegar valor de um select vindo de outra pagina com o

Recommended Posts

Olá...tudo bem, este é o meu primeiro post nessa modalidade e não sei bem se o meu problema é só javascript ou no framework ou...no proprio php, portanto...desde já peço desculpas caso o post estiver no lugar errado ok.

 

Bom...o meu problema é...

 

Estou utilizando o XAJAX para resolver um problema aki...e...ele resolveu mas...gerou um outro.

 

Para resumir tudo, tenho um arquivo chamado etvXajax.php e nele fiz o seguinte codigo

 

$ajax = new xajax();
$ajax->registerFunction("obter_quantidade_1");
function obter_quantidade_1($valor){
	$conectar = new conexao();
	$conectar->abrir();
	
	 $sql = "SELECT * FROM serie_passe  
				 WHERE series = ".$valor."";
	 $consultar = $conectar->consultar($sql);
	  $quantidade = mysql_fetch_array($consultar);
	  $quantidade = $quantidade["quant :thumbsup: idade"];
	  
	$select = "<select name='quantidade_1'>";
	
	for($i=1; $i<=$quantidade;$i++){
		$select.="<option value=".$i.">".$i."</option>";
	}
	$select.="</select>";
	$objResponse = new xajaxResponse('ISO-8859-1');
	$objResponse->assign('resposta_1', 'innerHTML',"$select");
	return $objResponse;
}

Observem que...irá me retornar um select box ok...

 

E no form, fiz o seguinte

 

<tr>
					<td>
				Escolha uma serie:
			</td>
			<td>
				<select name="serie_1" id="serie_1" onchange="xajax_obter_quantidade_1(document.getElementById('serie_1').value)">
					<option value="0"></option>
						<?=
							$serie->consultar();
						?>
				</select>			
			</td>
			<td>
				Quantidade:
			</td>
			<td>
				<div id="resposta_1"></div>			
			</td>
			</tr>

E observem que...aquele select box que irá ser retornado pelo XAJAX ou mais precisamente pelo arquivos evtXajax.php irá ser listado no <div ="resultado"></div>.

 

Agora aí mora o problema.

 

O novo select box que será listado, eu quero pegar os valores que virão neles (serão uns 4 select box's) e ao ir clicando em cada um e selecionando um determinado numero em cada um deles, quero que seja realizada uma soma em um campo textField. Fazendo com select's normais (ultimo script mais abaixo), eu testei e funcionou, mas..vindo da outra pagina...não funciona.

 

O codigo acima, estou realizando ele com consultas no banco mas...logo abaixo, irei deixar o codigo para fazer sem consultar...assim facilitará para os que quiserem testar o meu problema...

 

Form.php

<?require $_SERVER["DOCUMENT_ROOT"]."/teste/evtajax.php";?>
<?php $ajax->printJavascript("/teste/freamework/xajax/"); ?>


<select name="name" id="name" onchange="xajax_teste(document.getElementById('name').value)">
	<option value="0">0</option>
	<option value="1">option1</option>
	<option value="2">option2</option>
	<option value="3">option3</option>
</select>
<div id="resp">
</div>

evtXajax.php

 

<?php
require $_SERVER["DOCUMENT_ROOT"]."/teste/freamework/xajax/xajax_core/xajax.inc.php";
$ajax = new xajax();
$ajax->registerFunction("teste");
function teste($valor){
	$select = "<select>";
	
	for($i=0; $i<=$valor;$i++){
		$select.="<option value='1'>".$i."</option>";
	}
	$select.="</select>";
	$objResponse = new xajaxResponse('ISO-8859-1');
	$objResponse->assign('resp', 'innerHTML',"$select");
	return $objResponse;
}
$ajax->processRequest();

?>

E aqui está +/- como eu quero fazer (arquivo independente, apenas um teste)

 

<script type="text/javascript">
function calcular2(){
var a= eval(document.form.select1.value);
var b= eval(document.form.select2.value);
var c= eval(document.form.select3.value);
var d= a+b+c;
document.form.resultado.value=d;
}
</script>
<form name="form"><br>
Select's<br><br>
Select 1 : <select name="select1" onClick="calcular2()">
			   <option value="0">0</option>
			   <option value="1">1</option>
			   <option value="2">2</option>
			   <option value="3">3</option>
			   <option value="4">4</option>
			   <option value="5">5</option>
			   </select><br>
Select 2 : <select name="select2" onClick="calcular2()">
			   <option value="0">0</option>
			   <option value="1">1</option>
			   <option value="2">2</option>
			   <option value="3">3</option>
			   <option value="4">4</option>
			   <option value="5">5</option>
			   </select><br>
Select 3 : <select name="select3" onClick="calcular2()">
			   <option value="0">0</option>
			   <option value="1">1</option>
			   <option value="2">2</option>
			   <option value="3">3</option>
			   <option value="4">4</option>
			   <option value="5">5</option>
			   </select><br><br><br><br><br><br>
Resultado : <input type="text" name="resultado" size="5">
</form>
Bom...não sei se me expressei corretamente e nem sei se estou no lugar certo mais...se alguem souber o porque disso ou como me ajudar...eu irei ficar muito grato.

 

Bom...desde já...um abraço e obrigado à todos!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom...conseguir resolver esse problema, só não sei se é a forma mais viavel, mas...por hora...irá resolver o meu problema.

 

A solução foi a seguinte...

 

No arquivo evtXajax.php tem o seguinte trecho de codigo

$select = "<select name='quantidade_1'>";
	
	for($i=1; $i<=$quantidade;$i++){
		$select.="<option value=".$i.">".$i."</option>";
	}
	$select.="</select>";
Onde...coloquei o nome do select é claro né "name='quantidade_1' "

 

Dai no form onde será listado o resultado (no meu caso num div)

 

<td>
				<div id="resposta_4" onchange="calcular4()"></div>			
			</td>
Coloquei o evento onchange chamando uma função simples em JavaScritp

 

onde a mesma é a seguinte...

 

<script type="text/javascript">

		function calcular1(){
		var a= eval(document.form_passes.quantidade_1.value);
		
		var e= a;
		document.form_passes.qtde.value=e;
		}
		function calcular2(){
		var a= eval(document.form_passes.quantidade_1.value);
		var b= eval(document.form_passes.quantidade_2.value);
		
		var e= a+b;
		document.form_passes.qtde.value=e;
		}
		function calcular3(){
		var a= eval(document.form_passes.quantidade_1.value);
		var b= eval(document.form_passes.quantidade_2.value);
		var c= eval(document.form_passes.quantidade_3.value);
		
		var e= a+b+c;
		document.form_passes.qtde.value=e;
		}
		function calcular4(){
		var a= eval(document.form_passes.quantidade_1.value);
		var b= eval(document.form_passes.quantidade_2.value);
		var c= eval(document.form_passes.quantidade_3.value);
		var d= eval(document.form_passes.quantidade_4.value);
		
		var e= a+b+c+d;
		document.form_passes.qtde.value=e;
		}
	</script>

Bom...dessa forma aí...resolveu o meu problema só que...tive que fazer uma função para cada select(pois são 4 select's onde em cada um seleciono um valor e esse valor ira sendo somado), pois se eu não fizer...ele irá listar o resultado apenas depois que eu selecionar o valor do ultimo select.

 

Bom...não sei se foi a forma mais correta para fazer isso mais...já estou feliz apenas de estar mostrando os resultados conforme eu quero.

 

Bom...agradeço aos que pelo menos leram esse topico

 

Abraços galera... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.