Fui longe a procura deste codigo que me serve bem... porem me deparei com uma nova dificuldade...
na segunda combobox eu n tenho como pegar o ID da opção escolhida... como faço?
Atualiza.PHP
<?php
$conexao = mysql_connect('localhost', 'root', '');
if ($conexao)
{
if (!mysql_select_db('mamuth', $conexao))
{
echo ('<div id="erro">Não foi possível selecionar o Banco de Dados!</div>');
}
}
else
{
echo('<div id="erro">Não foi possível conectar ao Banco de Dados!</div>');
}
// busca dados do combo 2
$sql = "
SELECT k.id,k.nome
FROM assunto l,assunto_comp k
WHERE l.id = '".$_GET['categoria']."'
AND l.id = k.id_assunto
";
$resultado = mysql_query($sql)
or die ("Problema na Consulta");
echo "<select name=\"assunto_comp\" id=\"assunto_comp\"> ";
echo "<option selected>-- Selecione --</option>";
while ($linha = mysql_fetch_array($resultado)) {
echo "<option value=\"" . $linha['id'] . "\">" . $linha['nome'] . "</option>";
}
mysql_close($conexao);
echo "</select>";
?>
JS.JS
function loadXMLDoc(url,valor)
{
req = null;
alert( valor);
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send(null);
// Procura por uma versao ActiveX (IE)
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send();
}
}
}
function processReqChange()
{
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status == 200) {
// procura pela div id="atualiza" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById('atualiza').innerHTML = req.responseText;
}
else
{
alert("Houve um problema ao obter os dados:\n" + req.statusText);
}
}
}
function Atualiza(valor)
{
loadXMLDoc("atualiza.php",valor);
}
Index.php
<HTML>
<HEAD>
<script language="javascript" type="text/javascript" src="js.js"></script>
</HEAD>
<BODY>
<form>
<?php
$conexao = mysql_connect('localhost', 'root', '');
if ($conexao)
{
if (!mysql_select_db('mamuth', $conexao))
{
echo ('<div id="erro">Não foi possível selecionar o Banco de Dados!</div>');
}
}
else
{
echo('<div id="erro">Não foi possível conectar ao Banco de Dados!</div>');
}
$sql = "SELECT id, nome
FROM assunto";
$resultado = mysql_query($sql, $conexao)
or die("Problema na Consulta");
echo "<select name=\"assunto\" id=\"assunto\" onChange=\"java script:Atualiza(this.value);\"> ";
echo "<option selected>-- Selecione --</option>";
while ($linha = mysql_fetch_array($resultado))
{
echo "<option value=\"" . $linha['id'] . "\">" . $linha['nome'] . "</option>";
}
mysql_close($conexao);
?>
</select>
</form>
<div id="atualiza">
<?
echo "<select name=\"assunto_comp\" id=\"assunto_comp\"> ";
echo "<option selected>-- Selecione --</option>";
?>
</div>
</BODY>
</HTML>
Galera, sou novo nesse forum, por isso des de já agradeço.
Pergunta
KornsFlakes
Seguinte galera...
Fui longe a procura deste codigo que me serve bem... porem me deparei com uma nova dificuldade...
na segunda combobox eu n tenho como pegar o ID da opção escolhida... como faço?
Atualiza.PHP
<?php $conexao = mysql_connect('localhost', 'root', ''); if ($conexao) { if (!mysql_select_db('mamuth', $conexao)) { echo ('<div id="erro">Não foi possível selecionar o Banco de Dados!</div>'); } } else { echo('<div id="erro">Não foi possível conectar ao Banco de Dados!</div>'); } // busca dados do combo 2 $sql = " SELECT k.id,k.nome FROM assunto l,assunto_comp k WHERE l.id = '".$_GET['categoria']."' AND l.id = k.id_assunto "; $resultado = mysql_query($sql) or die ("Problema na Consulta"); echo "<select name=\"assunto_comp\" id=\"assunto_comp\"> "; echo "<option selected>-- Selecione --</option>"; while ($linha = mysql_fetch_array($resultado)) { echo "<option value=\"" . $linha['id'] . "\">" . $linha['nome'] . "</option>"; } mysql_close($conexao); echo "</select>"; ?>JS.JSfunction loadXMLDoc(url,valor) { req = null; alert( valor); // Procura por um objeto nativo (Mozilla/Safari) if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url+'?categoria='+valor, true); req.send(null); // Procura por uma versao ActiveX (IE) } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url+'?categoria='+valor, true); req.send(); } } } function processReqChange() { // apenas quando o estado for "completado" if (req.readyState == 4) { // apenas se o servidor retornar "OK" if (req.status == 200) { // procura pela div id="atualiza" e insere o conteudo // retornado nela, como texto HTML document.getElementById('atualiza').innerHTML = req.responseText; } else { alert("Houve um problema ao obter os dados:\n" + req.statusText); } } } function Atualiza(valor) { loadXMLDoc("atualiza.php",valor); }Index.php<HTML> <HEAD> <script language="javascript" type="text/javascript" src="js.js"></script> </HEAD> <BODY> <form> <?php $conexao = mysql_connect('localhost', 'root', ''); if ($conexao) { if (!mysql_select_db('mamuth', $conexao)) { echo ('<div id="erro">Não foi possível selecionar o Banco de Dados!</div>'); } } else { echo('<div id="erro">Não foi possível conectar ao Banco de Dados!</div>'); } $sql = "SELECT id, nome FROM assunto"; $resultado = mysql_query($sql, $conexao) or die("Problema na Consulta"); echo "<select name=\"assunto\" id=\"assunto\" onChange=\"java script:Atualiza(this.value);\"> "; echo "<option selected>-- Selecione --</option>"; while ($linha = mysql_fetch_array($resultado)) { echo "<option value=\"" . $linha['id'] . "\">" . $linha['nome'] . "</option>"; } mysql_close($conexao); ?> </select> </form> <div id="atualiza"> <? echo "<select name=\"assunto_comp\" id=\"assunto_comp\"> "; echo "<option selected>-- Selecione --</option>"; ?> </div> </BODY> </HTML>Galera, sou novo nesse forum, por isso des de já agradeço.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.