Ir para conteúdo

POWERED BY:

Arquivado

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

Kaelson

Deletar e alterar campos select HTML + MYSQL + PHP

Recommended Posts

agora o problema está no php:

 

http://www.buffetfama.com.br/goldkael/gold/combos-dependentes-function.inc.php?idCombo1=1

 

não está voltando nenhum dado. Tem algo cadastrado no banco ? com quais IDs ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O php está da seguinte forma: Lembrando que minha tabela se chama tb_mural e as colunas são:

id_url (int,5, auto-increment e primary)

url (varchar 50)

palavrachave (varchar 50)

 

O código então ficou assim:

 

 

 

 

<?php
header("Content-Type: text/html; charset=ISO-8859-1");
function intGet( $campo ){
return isset( $_GET[$campo] ) ? (int)$_GET[$campo] : 0;
}
function retorno( $id )
{
$sql = "SELECT `id_url`, `palvrachave`
FROM `combo2`
WHERE `idCombo1` = {$id_url} ";
$sql .= "ORDER BY `nome` ";
$mysqli = new mysqli("mysql14.fama", "portalexpresso20", "fabi550", "portalexpresso20");
$q = $mysqli->query( $sql );
$json = Array();
if( $q->num_rows > 0 )
{
while( $dados = $q->fetch_object() )
{
$json[] = Array('url'=> utf8_encode( $dados->url ), 'id_url'=> $dados->id_url);
}
}
else
$json[] = Array('url'=> utf8_encode( 'nao encontrado' ), 'id_url'=> '0' );
return json_encode( $json );
}
echo retorno( intGet('idCombo1') );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tem varios erros na tua query:

    function retorno( $id )  
    {  
        $sql = "SELECT `id_url`, `palvrachave`  
            FROM `combo2`  
            WHERE `idCombo1` = {$id_url} ";  
        $sql .= "ORDER BY `nome` ";  
troque por:

    function retorno( $id )  
    {  
        $sql = "SELECT `id_url`, `palavrachave`  
            FROM `tb_mural`  
            WHERE `id_url` = {$id} ";  
        $sql .= "ORDER BY `palavrachave` ";  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então..troquei o código conforme as opções acima e não mudou nada :(.

 

O código ficou assim agora:




<?php
header("Content-Type: text/html; charset=ISO-8859-1");
function intGet( $campo ){
return isset( $_GET[$campo] ) ? (int)$_GET[$campo] : 0;
}
function retorno( $id )
{
$sql = "SELECT `id_url`, `palavrachave`
FROM `tb_mural`
WHERE `id_url` = {$id} ";
$sql .= "ORDER BY `palavrachave` ";
$mysqli = new mysqli("mysql14.buffetfama.com.br", "portalexpresso15", "fabi080982", "portalexpresso15");
$q = $mysqli->query( $sql );
$json = Array();
if( $q->num_rows > 0 )
{
while( $dados = $q->fetch_object() )
{
$json[] = Array('url'=> utf8_encode( $dados->url ), 'id_url'=> $dados->id_url);
}
}
else
$json[] = Array('url'=> utf8_encode( 'nao encontrado' ), 'id_url'=> '0' );
return json_encode( $json );
}
echo retorno( intGet('idCombo1') );
?>

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como está o teu arquivo .php neste momento.

O teu erro está nele, preste atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está desse jeito que postei acima :) .

 

Vou colocar de novo:



<?php
header("Content-Type: text/html; charset=ISO-8859-1");
function intGet( $campo ){
return isset( $_GET[$campo] ) ? (int)$_GET[$campo] : 0;
}
function retorno( $id )
{
$sql = "SELECT `id_url`, `palavrachave`
FROM `tb_mural`
WHERE `id_url` = {$id} ";
$sql .= "ORDER BY `palavrachave` ";
$mysqli = new mysqli("mysql14.buffetfama.com.br", "portalexpresso15", "fabi080982", "portalexpresso15");
$q = $mysqli->query( $sql );
$json = Array();
if( $q->num_rows > 0 )
{
while( $dados = $q->fetch_object() )
{
$json[] = Array('url'=> utf8_encode( $dados->url ), 'id_url'=> $dados->id_url);
}
}
else
$json[] = Array('url'=> utf8_encode( 'nao encontrado' ), 'id_url'=> '0' );
return json_encode( $json );
}
echo retorno( intGet('idCombo1') );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

então não tem dado nenhum no teu banco de dados.

 

Exporte a tabela: tb_mural e poste aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exportei. Seria esse código a seguir:

 

 

 

-- phpMyAdmin SQL Dump
-- version 3.3.10deb2
--
-- Servidor: 186.202.152.54
-- Tempo de Geração: Fev 06, 2013 as 01:54 PM
-- Versão do Servidor: 5.1.54
-- Versão do PHP: 5.3.3-7+squeeze14
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Banco de Dados: `portalexpresso15`
--
CREATE DATABASE `portalexpresso15` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
USE `portalexpresso15`;
-- --------------------------------------------------------
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `tb_mural`
--
CREATE TABLE IF NOT EXISTS `tb_mural` (
`id_url` int(5) NOT NULL AUTO_INCREMENT,
`url` varchar(50) COLLATE latin1_general_ci NOT NULL,
`palavrachave` varchar(50) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id_url`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
--
-- Extraindo dados da tabela `tb_mural`
--
INSERT INTO `tb_mural` (`id_url`, `url`, `palavrachave`) VALUES
(2, 'primeira-url.html', 'primeira-palavra'),
(3, 'espetinhos.html', 'Espetinhos'),
(4, 'espetinho-buffet.html', 'Espetinhos Buffet');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora está vindo certo, só precisa ajustar uma coisa.

 

http://www.buffetfama.com.br/goldkael/gold/combos-dependentes-function.inc.php?idCombo1=2

$json[] = Array('url'=> utf8_encode( $dados->palavrachave ), 'id_url'=> $dados->id_url);
ai fica tudo ok, e voltamos para a casca, testar o js

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora está voltando certinho o GET do jSON:

 

[{"url":"primeira-palavra","id_url":"2"}]

 

ai vamos debugar o js agora

 

aqui:

 $( option[i] ).attr( {value : obj.id} );//colocando o value no option  
   $( option[i] ).append( obj.nome );//colocando o 'label'  
troque para:

 $( option[i] ).attr( {value : obj.id_url} );//colocando o value no option  
   $( option[i] ).append( obj.url );//colocando o 'label'  

Entendeu oque estamos fazendo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi sim foi alterado a coluna id para id_url e a coluna nome para url. Certo?

 

Fiz isso mudou alguma coisa já, mas ainda não está funcionando. :( .

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta funcionando sim cara, ta perfeito.

 

alterei o primeiro combo para: "item 2", ai apareceu no segundo combo: "primeira-palavra"

alterei para "item 3", ai apareceu: "Espetinhos".

 

Está tudo certo lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então mas não gostaria que aparecesse Item 1, Item 2 ou Item 3. Gostaria de conciliar linha com linha da coluna "url" e "palavrachave". :(

Tipo assim: carrega a linha 1 da coluna "url" aí no combo 2 carregar a linha 1 da coluna "palavrachave"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então mas não gostaria que aparecesse Item 1, Item 2 ou Item 3.

então vc tem q implementar isso, uê.

 

o código está funcionando, agora vc precisa ajeitar a sua necessidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, vc tem que mexe nele.

 

ii cara.. ai então te recomendo estudar php.. isso é algo bem tranquilo de fazer, mas é meio tenso ficar fazendo esse passo a passo pelo fórum. Dá uma lida em algumas coisas, e tente fazer.

 

o código js/ajax tá funcionando, resolvemos esse tópico aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...tentei fazer um combo select peguei o código pronto...e quase funcionou...será que poderia me ajudar a ver porque ainda não funciona?

 

O link é:

 

www.buffetfama.com.br/goldkael/select2

 

 

Criei a seguinte tabela:

 

CREATE TABLE IF NOT EXISTS `two_drops` (
  `id` int(11) NOT NULL auto_increment,
  `tier_one` varchar(255) NOT NULL,
  `tier_two` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM ;
 
--
-- Dumping data for table `two_drops`
--
 
INSERT INTO `two_drops` (`id`, `tier_one`, `tier_two`) VALUES
(1, 'Colors', 'Red'),
(2, 'Colors', 'Blue'),
(3, 'Colors', 'Green'),
(4, 'Colors', 'Yellow'),
(5, 'Colors', 'Black'),
(6, 'Shapes', 'Square'),
(7, 'Shapes', 'Circle'),
(8, 'Shapes', 'Triangle'),
(9, 'Shapes', 'Rectangle'),
(10, 'Shapes', 'Oval');
 
 

Depois criei os arquivos: jquery.js (dentro de uma pasta chamada js) como o código JQUERY.

 

Os outros arquivos são: categoria.php com o seguinte código:

<?php
/**Local que está rodando o php */
 
$hostname = 'mysql14.com.br';
 
/**Nome do usuário que tem acesso */
 
$username = 'portalexpresso15';
 
/**Senha do usuário, no exemplo está em branco */
$senha = 'senha_meu_banco';
 
/**Banco de dados desejado */
$banco = 'banco';
 
 
/**Mysql_connect -- Abre uma conexão com o servidor MySql */
$db = mysql_connect($hostname,$username,$senha);
 
/**mysql_select_db -- Seleciona um banco de dados MySQL */
mysql_select_db($banco,$db);
 
?>

 

 

 

 

O INDEX.PHP:

 

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[url=http://www.w3.org/TR/html4/loose.dtd]http://www.w3.org/TR/html4/loose.dtd [/url]">
<html>
<head>

<?php
/**Local que está rodando o php */
 
$hostname = 'mysql14.com.br';
 
/**Nome do usuário que tem acesso */
 
$username = 'portalexpresso15';
 
/**Senha do usuário, no exemplo está em branco */
$senha = 'senha_meu_banco';
 
/**Banco de dados desejado */
$banco = 'banco';
 
 
/**Mysql_connect -- Abre uma conexão com o servidor MySql */
$db = mysql_connect($hostname,$username,$senha);
 
/**mysql_select_db -- Seleciona um banco de dados MySQL */
mysql_select_db($banco,$db);

 
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><br>
<title>Combo Dinâmico com PHP e JQUERY</title><br>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
 
<body>
<form name="cat_form" method="post" action="">
     <select name="categoria">
<option value="0">Selecione uma categoria</option>
 
 
</select>
 
</form>
 
 
<form name="post_form" method="post" action="">
     <select name="post">
<option value="0" disabled="disabled">Antes selecione a categoria</option>
<?php
  $pega_categoria = mysql_query("SELECT * FROM categoria");
if(mysql_num_rows($pega_categoria) <= '0') {
  echo ' <option value="0" disabled="disabled">Não temos categoria cadastradas no momento</option>';
}else{
 
while($res = mysql_fetch_array($pega_categoria)) {
$cat_id = $res['cat_id'];
$cat_name = $res['cat_name'];
 
echo '<option value="'.cat_id.'">'.$cat_name.'</option>';
 
 
}
}
?>
</select>
 
</form>
<div id="single_div" style="display:none;">
</div>
 
</body>
</html>

 

 

E O ARQUIVO post.php com o seguinte código:

<?php
/**Local que está rodando o php */
 
$hostname = 'mysql14.buffetfama.com.br';
 
/**Nome do usuário que tem acesso */
 
$username = 'portalexpresso15';
 
/**Senha do usuário, no exemplo está em branco */
$senha = 'fabi080982';
 
/**Banco de dados desejado */
$banco = 'portalexpresso15';
 
 
/**Mysql_connect -- Abre uma conexão com o servidor MySql */
$db = mysql_connect($hostname,$username,$senha);
 
/**mysql_select_db -- Seleciona um banco de dados MySQL */
mysql_select_db($portalexpresso15,$db);
 
?>

 

 

Não consegui fazer funcionar.

 

Poderia me ajudar, por favor?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual que é a sua dúvida agora amigo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui montar o select mas não carrega as tabelas.

Coloquei todas as páginas que criei acima e o resultado foi o seguinte:

www.buffetfama.com.br/goldkael/select2

Tentei de tudo, mas não consigo encontrar onde esté meu erro :(

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.