Jump to content


Photo

[resolvido] Preencher 4 Combobox Dinamicas


  • Faça o login para participar
8 replies to this topic

#1 ThinkBrunus

ThinkBrunus

    Normal

  • Usuários
  • 89 posts
  • Sexo:Masculino

Posted 21/07/2009, 11:39

Olá a todos!

Estou a desenvolver um formulário de inserção de dados, e pretendo que este tenha 4 combobox que sejam preenchidas dinamicamente sempre em função da opção escolhida na combo anterior.

Recorrendo a pesquisas e algumas dicas pelos fórums vou desenvolvendo, e de momento tenho dois códigos, estando encalhado nos dois!

O primeiro que já coloquei anteriormente num post sem respostas....
$(document).ready(function(){
		 
		 $("select[name=combo_classe]").change(function(){
			$("select[name=combo_subclasse]").html('<option value="0">Carregando...</option>');
			
			$.post("subclasse.php",
				  {combo_classe:$(this).val()},
				  function(valor){
					 $("select[name=combo_subclasse]").html(valor);
				  })
		 })
		 
		 $("select[name=combo_subclasse]").change(function(){
			$("select[name=combo_serie]").html('<option value="0">Carregando...</option>');
			
			$.post("serie.php",
				  {combo_subclasse:$(this).val()},
				  function(valor){
					 $("select[name=combo_serie]").html(valor);
				  })
		 })		 
})

ele preenche a 2º conforme selecção do 1º, e no 3º preenche conforme selecção da 2ª. Mas se alterar a opção da 2ª combo ele não actualiza. É este o obstáculo para o qual não encontro solução...

Sem respostas, segui para o seguinte:
function changeClasse(){
xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
var classe = encodeURI(document.getElementById('combo_classe').value);
nocache = Math.random();
	xmlHttp.open("GET", "/admin/arquivo/teste.php?classe="+classe+"&nocache="+nocache);		
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4) {	
			document.getElementById("combo_subclasse").outerHTML = "<select id=\"combo_subclasse\" name=\"combo_subclasse\">" + xmlHttp.responseText + 
			"</select>";
		}
	}
xmlHttp.send(null);
}


function changeSubclasse(){
xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
var subclasse = encodeURI(document.getElementById('combo_subclasse').value);
nocache = Math.random();
	xmlHttp.open("GET", "/admin/arquivo/teste.php?subclasse="+subclasse+"&nocache="+nocache);		
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4) {	
			document.getElementById("combo_serie").outerHTML = "<select id=\"combo_serie\" name=\"combo_serie\">" + xmlHttp.responseText + 
			"</select>";
		}
	}
xmlHttp.send(null);
}

Agora neste ele preenche o 2º combo sem problemas, mas no terceiro quando chamo no HTML:
<select name="combo_subclasse" id="combo_subclasse" onchange="java script:changeSubclasse()">

...ele não executa nada, presumo que não reconheça os valores que foram inserido pela função referida "function changeClasse()"

Ora tou no ponto que não sei para que lado virar-me, alguém pode dar-me uma ajuda?

Obrigado!

Edição feita por: ThinkBrunus, 31/07/2009, 07:21.


#2 apolo

apolo

    Php my life...

  • Usuários
  • 227 posts
  • Sexo:Masculino
  • Localidade:Rio das Ostras - RJ
  • Interesses:PHP e MYSQL

Posted 22/07/2009, 11:21

Era para ele atualizar sim, coloca o código todo, com os campos select e o jquery..

mas como vc está utlizando o change() era para ele atualizar sim.

eu tive algo parecido a um tempo atrás, inclusive se vc mudasse novamente a primeira, ele dava um disabled na teceira.

sacou ? pq era necessário a segunda ser alterada para habilitar a terceira.

colocae que dah pra resolver sim..
QUE DEUS ABENÇOE TODOS !!!!
---------------
Espero ter Ajudado alguém,
----------------------
Antes de postar, veja se realmente não tem outro jeito..

#3 ThinkBrunus

ThinkBrunus

    Normal

  • Usuários
  • 89 posts
  • Sexo:Masculino

Posted 23/07/2009, 06:00

Viva!

Então aqui segue todo o código:

frmInserir.php
<?php  
include_once($_SERVER['DOCUMENT_ROOT'] . "/includes/restrict.php");
require($_SERVER['DOCUMENT_ROOT'] . "/includes/settings.php");	
mysql_select_db("db_arquivo",$conn);

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");		
?>

<!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" />
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/admin/arquivo/js/arquivoComboBox.js"></script>
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="arquivoInserir_Guardar.php">
  <table border="1">
	<tr>
	  <td>Código classe</td>
	  <td><select name="combo_classe" id="combo_classe">
		<option value="0">.:&nbsp;Seleccionar o código da classe&nbsp;:.</option>
				<?php 
					$query = "SELECT * FROM classe ORDER BY id_classe ASC";
					$sql = mysql_query($query);
					while ($result = mysql_fetch_array($sql)) { 
						echo "<option value=\"" . $result['id_classe'] . "\">" . $result['designacao'] . "</option>";
					}
				?>			
	  </select>
		<span class="campo_obrigatorio">*</span></td>
	  <td>&nbsp;</td>
	</tr>
	<tr>
	  <td>Código subclasse</td>
	  <td><select name="combo_subclasse" id="combo_subclasse">
		<option disabled="disabled" value="0">.:&nbsp;Seleccione primeiro a classe&nbsp;:.</option>
	  </select>
		<span class="campo_obrigatorio">*</span></td>
	  <td>&nbsp;</td>
	</tr>
	<tr>
	  <td>Código série</td>
	  <td><select name="combo_serie" id="combo_serie">
		<option disabled="disabled">.:&nbsp;Seleccione primeiro a subclasse&nbsp;:.</option>
	  </select>
		<span class="campo_obrigatorio">*</span></td>
	  <td>&nbsp;</td>
	</tr>
	<tr>
	  <td>Código subsérie</td>
	  <td><select name="combo_subserie" id="combo_subserie">
		<option disabled="disabled">.:&nbsp;Seleccione primeiro a série&nbsp;:.</option>
	  </select>
		<span class="campo_obrigatorio">*</span></td>
	  <td>&nbsp;</td>
	</tr>
	</tr>
  </table>
</form>
</body>
</html>

arquivoComboBox.js
$(document).ready(function(){
		 
		 $("select[name=combo_classe]").change(function(){
			$("select[name=combo_subclasse]").html('<option value="0">Carregando...</option>');
			
			$.post("subclasse.php",
				  {combo_classe:$(this).val()},
				  function(valor){
					 $("select[name=combo_subclasse]").html(valor);
				  })
		 })
		 
		 $("select[name=combo_subclasse]").change(function(){
			$("select[name=combo_serie]").html('<option value="0">Carregando...</option>');
			
			$.post("serie.php",
				  {combo_subclasse:$(this).val()},
				  function(valor){
					 $("select[name=combo_serie]").html(valor);
				  })
		 })		 
})

Este é o código...

#4 ThinkBrunus

ThinkBrunus

    Normal

  • Usuários
  • 89 posts
  • Sexo:Masculino

Posted 31/07/2009, 07:20

Já solucionei com algumas ajudas o problema, vou deixar o código caso alguém tenha a mesma dúvida:

comboAjax.js
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) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			  }
			catch (e) {
 				  alert("O browser não suporta AJAX!");
				  return false;
			  }
		}
	  }
	return xmlHttp;

function changeClasse(){
xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
var classe = encodeURI(document.getElementById('combo_classe').value);
nocache = Math.random();
	xmlHttp.open("GET", "/admin/arquivo/subclasse.php?classe="+classe+"&nocache="+nocache);		
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4) {
		document.getElementById("combo_subclasse").outerHTML = "<select id=\"combo_subclasse\" name=\"combo_subclasse\">"+xmlHttp.responseText+"</select>";
//document.getElementById("combo_subclasse").innerHTML = xmlHttp.responseText;			
			document.getElementById("combo_subclasse").onchange=changeSubclasse;
		}
	}

xmlHttp.send(null);

}

e aqui o preenchimento da combo dependente, a subclasse

<?php  
include_once($_SERVER['DOCUMENT_ROOT'] . "/includes/restrict.php");
require($_SERVER['DOCUMENT_ROOT'] . "/includes/settings.php");	
mysql_select_db("db_arquivo",$conn);

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_results=utf8");		
	
	$sql = "SELECT * FROM subclasse WHERE id_classe='".mysql_real_escape_string($_GET['classe'])."'";
	$query = mysql_query($sql) or die(mysql_error());
		if (mysql_num_rows($query) == 0){
			echo "<option disabled='disabled' value='0'>.:&nbsp;Seleccionar primeiro a classe&nbsp;:.</option>";
		} else {	
			echo "<option value='0'><-- Seleccione a opção --></option>";
				while ($rs = mysql_fetch_assoc($query)){
					echo '<option value="' . $rs['id_subclasse']. '">' . $rs['designacao']. '</option>';
				}
		}	
?>

Este é um excerto do código, para utilizar mais combos o processo é o mesmo, alguma dúvida que possa ajudar é só dizer!

#5 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 26/09/2017, 21:33

Cialis 20 Mg Reviews viagra cialis Where Can I Buy Cyproheptadine
Cytotec Without Prescription Buy Levitra Online Dream Pharmaceutical buy cialis Zithromax Extended Release Kamagra Sans Ordonnance En Ligne Where Can I Buy Propranolol Ireland

#6 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 12/10/2017, 00:07

Can I Use Old Amoxicillin Liquid Purchase Cephalexin Propecia Coupon Drug viagra Flushed Face With Keflex Antibiotic Levitra Cost
Cialis 100mg Dosage Propecia E Hipertension viagra online pharmacy Achat De Viagra Quebec
Buying Macrobid 100mg viagra Finasteride Ricetta Propecia
Propecia Buy Online Canada Amoxicilina Where Can I Buy Tab Fedex Shipping viagra Need Generic Worldwide Provera C.O.D. Canada Pharmacy Viagra Overnight Generic Deltasone

#7 napedlok

napedlok

    24 Horas

  • Usuários
  • 409 posts
  • Sexo:Masculino
  • Localidade:Breschya

Posted 12/10/2017, 05:54

Discounts! best product brands progect13.jpg Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked! If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included). buy.png READ MORE ZANZEA 2016 Black White Sexy Women Sweater Autumn Winter O Neck Bowknot Hollow Out Pullovers Long Sleeve Knitted Tops Pull Femme ( 16.32 $)Zhiteli Mosula: amerikanskaya koaliciya nanosit udari po zhilim domamStylish sequined crochet crop top for women ( 15.54 $)Peruvian virgin hair with closure human hair 3bundles with 1 lace closure unprocessed human hair peruvian body wave with closure ( 97.53 $)Cobbler Legend 2016 New Arrival Genuine Leather Women Handbags Fashion Crossbody Bags Female Handbag Trend Bag Bolsas #0900507-1 ( 99.00 $)Diy dmc home decoration cross stitching handmade needlework cross stitch kit precise printed garden cottage design ( 11.70 $)Tinyat male men travel bag folding bag protable molle women tote waterproof nylon casual travel duffel bag black t-306 ( 36.50 $)Fawn Goldtone Brass Ring wGlass Pearl ( 159.00 $)Coleen hair products 7a brazilian virgin hair straight 3 bundles dark and light brown brazilian straight hair human hair bundles ( 45.00 $)2028NoHF Crystal AB Rhinestone for Nails Art All Sizes SS3-SS20-SS40 Sew Strass Stones and Crystals Glass Rhinestones ( 4.36 $)Top selling Geneva Silicone watch ladies women students Elegant Crystal Quartz Wrist Jelly Sports Watches GV001 ( 2.40 $)Vintage cute bow small handbags hotsale women evening clutch ladies mobile purse famous brand shoulder messenger crossbody bags ( 17.00 $)King Wear GT88 Smartwatch Phone-38.17 $Diamond and Hammered Stainless Steel Cross Pendant Necklace ( 108.80 $)Toposhine 2016 PU Leather Rivet Women Backpacks Solid Bear Colorful Women Shoulder Bag for Women Girl Backpacks 3 Colors 8804 ( 19.52 $) 86.jpg
Discounts! best of products progect13.jpg Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked! If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included). buy.png READ MORE JISIWEI I3 Smart Robotic Vacuum Cleaner-236.77 $MONOLOG ELENIEthnic bohemia faux gemstone chunky necklace for women ( 4.35 $)Logo Aviator Sunglasses ( 170.00 $)AGM X1 4G Phablet $359.97Girl long purecolor light golden curls daenerys targaryen cosplay 28inch temperature fiber synthetic hair wigs fast shipping ( 15.66 $)Delicate geometric triangle tassel earrings for women bijoux pendientes fashion jewelry ( 3.66 $)Fonda, PiterLight Pink Wool and Cashmere Stole ( 60.00 $)Free shipping pink wireless baby monitor 2.4ghz digital video baby monitorreceiver 1.5 inch baby monitor with flower camera ( 103.40 $)ILIFE V5 Pro Intelligent Robotic Vacuum Cleaner Automatic Timing Function IR Avoidance Sensor Mopping Machine 192.79$2016 new fashion winter scarves women brand cachecol gradient scarf foulard femme designer cotton shawls scarf ( 10.30 $)Stylish hooded knitted splicing long sleeve down coat for women ( 38.89 $)Melbye Gray s Watch ( 179.00 $)UMI ROME X 3G Phablet-81.67 $ 108.jpg
Discounts! kempen best product

progect13.jpg
Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked!
If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included).

buy.png

READ MORE
Sidar, Josef
Bag in bag women organizer travel pockets handbag heighten style or tote style small styles 4 colors ( 19.99 $)
ZANSTYLE Women Long Down Jacket $199.99
50cm x 300cm dark black car window tint film glass vlt 5% roll 1 ply car auto house commercial solar protection summer ( 7.99 $)
Li-Ning Outdoor Running Shoes Women Light Mesh Breathable Cushioning Lace-Up Sneakers Sport Shoes ARJK012 XYP246 ( 47.83 $)
Beelink R68 TV Box RK3368 64Bit Octa Core HDMI 2.0 Android 5.1 Add-ons Metal Shell 2.4G + 5.8G WiFi Bluetooth 4.0 82.79$
New Luxury Women Handbags Quality Genuine Leather Ladies Handbags Famous Brand Designer Women Casual Tote Clutches Bolsa Femina ( 48.78 $)
JJRC H20H Mini Hexacopter ( 19.36 $)
Universal motorcycle dirt bike enduro off road wheel rim spoke shrouds skins covers for yamaha kawasaki ( 6.66 $)
Fleming, Viktor
Kigo 2016 women metallic silver skirt midi skirt high waist metallic pleated skirt party club ladies saia fenimias kz2087h ( 21.65 $)
8 Grid Small PP Component Storage Box Container ( $1.40 )
Concise checked and weave design men's casual shoes ( 30.16 $)
2015 China Wholesale 5V 16 Channel Relay Module for arduino ARM PIC AVR DSP Electronic Relay Plate Belt optocoupler isolation ( 11.30 $)
4pcs Gemfan 4045 Propeller ( $6.28 )


88bb.jpg

#8 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 29/10/2017, 06:55

Kamagra Gunstig Bestellen levitra 10 93 3109 Pill Amoxicillin
Acquisto Levitra Italiano Where To Order Bentyl 100 mg levitra Propecia Hair Recovery Amoxicillin Substitute

#9 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 29/10/2017, 10:02

Vendo Viagra Milano Real Propecia Results Male Pattern Baldness Cerco Levitra viagra Vigria Pills Ivermectin Price Usa
Where To Buy Avanafil buy viagra online Cytotec Diarrhee
Propecia Cost Merck Priligy Au Bottes Lasix Furosemide Mail Delisvey cialis buy online Cheapest Viagra 50mg Propecia Insurance Coverage Buy Generic Orlistat 120mg Online
Medications Cephalexin levitra without rx in the united states Levitra Espagne Purchase Doxycycline Online No Prescription Acheter Dapoxetine 90mg Generique




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq