Jump to content


Photo

Ajuda Com Sessions


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

#1 rome19

rome19

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 07/01/2005, 09:21

Pessoal eu enho o seguinte formulário:

<?
<form name="form1" id="form1" method="post" action="form">

<a href=info.php?id=$a1[ID]>Formulario</a></td></tr>
<tr><td><form action=lista.php method=post name=frmcarrinho>
<input type=hidden name=id  value=$a1[ID]>
<input type=hidden name=chassi  value=$a1[produto]> 
<input type=image src=adicionar.gif onClick=java script: document.forms[0].submit();></td></tr>


</form>

?>


Os valores das variáveis sãp obtidos através de uma consulta no Mysql..


LISTA.PHP

Aqui eu listo os valores.

<?
session_start();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;


echo $_SESSION['lista']."<br>";
echo $_SESSION['chassi'];


?>


Só que eu quero ir adicionando mais itens na lista, eu pesquisei bastante...e vi que tenho que usar array...mas como não manjo muito...será que alguém poderia me ajudar a fazer isso ou seja como eu faço essa array e mostro ela na tela...

Agradeço a ajuda de todos....


Rome

#2 paes

paes

    GustavoPaes.Net

  • Usuários
  • 1393 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Rumo ao topo!

Posted 07/01/2005, 09:26

PHP
<?php


$_SESSION
['produtos']['0'] = "casa";
$_SESSION['produtos']['1'] = "carro";
$_SESSION['produtos']['2'] = "árvore";

for(
$x=0; $x<=count($_SESSION['produtos']); $x++){

echo
$_SESSION['produtos'][$x]."<br>";

}


?>


Bom, está ai um exemplo de como mostrar array...
para mais explicações, tente

www.php.net/array

Até mais
Site: GustavoPaes.net

^ Rumo ao Topo ^

#3 rome19

rome19

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 07/01/2005, 10:14

Olá Paes obrigado pela ajuda...Meu código ficou assim com sua resposta:


<?
session_start();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;
$_SESSION['carroceria']=$carroceria;


$_SESSION['produtos'][] = $ListaID;
$_SESSION['produtos'][] = $chassi;
$_SESSION['produtos'][] = $carroceria;




//EXIBE
for($x=0; $x<=count($_SESSION['produtos']); $x++){

    echo $_SESSION['produtos'][$x]."<br>";

}

?>



Funcionou na boa...

Quero pedir mais uma ajuda:
Como faço se eu quiser selecionar um item para ser excluído da lista????
Ou seja aparecer ao lado uma opção excluir..e quando clicar nela o produto ser excluído ???


Rome

#4 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 07/01/2005, 10:46

usa funcao unset()

PHP
<?php



unset($array[indice]);



?>


#5 rome19

rome19

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 07/01/2005, 10:55

usa funcao unset()

PHP
<?php



unset($array[indice]);



?>

gbr_chacal...mas em que lugar do meu código eu colocaria isso???

Ou seja aparecer uma opção de excluir ao lado do produto ...e executar a exlcusão...


<?
session_start();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;
$_SESSION['carroceria']=$carroceria;


$_SESSION['produtos'][] = $ListaID;
$_SESSION['produtos'][] = $chassi;
$_SESSION['produtos'][] = $carroceria;




//EXIBE
for($x=0; $x<=count($_SESSION['produtos']); $x++){

    echo $_SESSION['produtos'][$x]."<br>";

}

?>


Mais uma vez obrigado a todos...


ROme

#6 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 07/01/2005, 11:15

Assim ...
Mas uma OBS, fica mais segura se vc coloquer a parte de deltar em outra parte ...

PHP
<?php
session_start
();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;
$_SESSION['carroceria']=$carroceria;


// Aqui deleta //
if (isset($_GET["delete"])) {
unset(
$_SESSION['produtos'][$_GET["delete"]]);
} else {
$_SESSION['produtos'][] = $ListaID;
$_SESSION['produtos'][] = $chassi;
$_SESSION['produtos'][] = $carroceria;
}


//EXIBE
for($x=0; $x<=count($_SESSION['produtos']); $x++){

    echo $_SESSION['produtos'][$x] . "<a href='$_SERVER[PHP_SELF]?delete=$x'>Deleta</a><br>";

}


?>

Edição feita por: sk15, 07/01/2005, 11:18.


#7 rome19

rome19

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 07/01/2005, 11:56

Assim ...
Mas uma OBS, fica mais segura se vc coloquer a parte de deltar em outra parte ...

PHP
<?php
session_start
();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;
$_SESSION['carroceria']=$carroceria;


// Aqui deleta //
if (isset($_GET["delete"])) {
unset(
$_SESSION['produtos'][$_GET["delete"]]);
} else {
$_SESSION['produtos'][] = $ListaID;
$_SESSION['produtos'][] = $chassi;
$_SESSION['produtos'][] = $carroceria;
}


//EXIBE
for($x=0; $x<=count($_SESSION['produtos']); $x++){

    echo $_SESSION['produtos'][$x] . "<a href='$_SERVER[PHP_SELF]?delete=$x'>Deleta</a><br>";

}


?>

SK15..obrigadão...mas só que quando aparecer a opção de deletar ele aparece para todos os itens (exemplo : os itens da variavel $ListaID,$chassi, $carroceria)

é que eles são itens de um mesmo produto.

Eu acho q tenho q mudar essas linhas:

$_SESSION['lista']=$ListaID;
$_SESSION['chassi']=$chassi;
$_SESSION['carroceria']=$carroceria;

e armazenar as informações de $ListaID,$chassi, $carroceria em uma outra array...será que é isso mesmo...se vc puder ajudar agradeço...valeu mesmo..

Rome

#8 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 07/01/2005, 13:08

Tenta assim estao ...

PHP
<?php
session_start
();

$ListaID = $_POST[id];
$chassi = $_POST[chassi];


// Aqui deleta //
if (isset($_GET["delete"])) {
unset(
$_SESSION['produtos'][$_GET["delete"]]);
} else {
// Ou seta os Produtos
$_SESSION['produtos'][] = array($ListaID, $chassi, $carroceria);
}


//EXIBE
for($x=0; $x<=count($_SESSION['produtos']); $x++){
echo
$_SESSION['produtos'][$x] . "<br>";
echo
"<a href='$_SERVER[PHP_SELF]?delete=$x'>Deleta</a><br>";
}
?>


So que tem um Porem ele deleta tudo ok ...
Mas se vc acessar o arquivo novamente tudo é steado de novo entao a solucao e 3 arquivos tipo um Seta as Sessôes o Outra as Lista, e o terceiro Deleta e depois redireciona parao lista novamente ...

#9 rome19

rome19

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 09/01/2005, 16:36

Eu tô com esses códigos aqui q o sk15 (esse cara me ajudou pra caramba) me passou:

1º Criacao da Sessao

Crie um arquivo que se cheme adicao.php e coloque esse nome no seu formulario de envio...


PHP 
<?php
session_start();

// Aqui seus Dados vem do Formulário //
$ListaID      = $_POST["id"];
$chassi      = $_POST["chassi"];
$carroceria  =$_POST["carroceria"];

// Grava na Seção //
$_SESSION["Pecas"][] = array($ListaID, $chassi, $carroceria);

echo 'Sua Peça foi adiciona com Sucesso
<a href="adicao.php">Adicionar Outra</a><br>
<a href="list.php">Listar Peças</a>';
?>



2º Listagem das Pecas

Crie um arquivo chmado "list.php" por exemplo...


PHP 
<?php

session_start();

for($x="0"; $x <= count($_SESSION["Pecas"]); $x++) {
echo "ID: " . $_SESSION["Pecas"][$x]["0"] . "<br>";
echo "Chassi: " . $_SESSION["Pecas"][$x]["1"] . "<br>";
echo "Carroceria: " . $_SESSION["Pecas"][$x]["2"] . "<br>";
echo '<a href="deleta.php?SID=' . $x . '">Deleta</a><br><br>';
}


?>



3º Deletado uma Peça

Crie um arquivo chmado "delete.php" por exemplo...
e coloque esses codigos


PHP 
<?php

session_start();

if (isset($_GET["SID"])) {
unset($_SESSION["Pecas"][$_GET["SID"]]);
}

echo 'Sua Peça foi deletada com Sucesso
<a href="adicao.php">Adicionar Outra</a><br>
<a href="list.php">Listar Peças</a>';
?>


só q no arquivo list.php ele sempre lista um registro em branco:

Exemplo : (ele lista um registro q selecionei, mas também lista um registro em branco...como pode ser visto abaixo:

ID: 70
Chassi: 21
Carroceria: 212
Deleta

ID:
Chassi:
Carroceria:
Deleta



Alguém pode me dar uma ajuda naquele arquivo list.php para q ele não listasse um registro em branco....

E se alguém puder me dá uma dica de se tem como eu fazer para q esses três arquivos pudesem ficar em um único arquivo...

Agradeço a todos...

Rome

#10 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 10/01/2005, 12:51

Vamos la a essas repostas, de como nao exibir errado e tudo em um arquivo só ..

PHP
<?php
// Inicia a Sessao & Pega o Nome desse Arquivo
session_start();
$file = $_SERVER["PHP_SELF"];

// Lista as Peças
function List() {
for(
$x = "0"; $x < count($_SESSION["Pecas"]); $x++) {
if (!empty(
$_SESSION["Pecas"][$x]["0"])) {
 echo
"ID: " . $_SESSION["Pecas"][$x]["0"] . "<br>";
 echo
"Chassi: " . $_SESSION["Pecas"][$x]["1"] . "<br>";
 echo
"Carroceria: " . $_SESSION["Pecas"][$x]["2"] . "<br>";
 echo
'<a href="' . $file . '?action=delete&SID=' . $x . '">Deleta</a><br><br>';
}
}
echo
'<a href="' . $file . '?action=add">Adicionar Peça</a>';
}

// Adicioa uma Peça Form
function Add() {
echo
'<form action="' . $file . '?action=add2" method="post">
SEU FORM
</form>'
;
}

// Adiciona a Peca na Sesão
function Add2() {
// Grava na Seção //
$_SESSION["Pecas"][] = array($ListaID, $chassi, $carroceria);
echo
'Sua Peça foi adiciona com Sucesso
<a href="'
. $file . '?action=add">Adicionar Outra</a><br>
<a href="'
. $file . '">Listar Peças</a>';
}

// Deleta uma Peca
function Delete() {
if (isset(
$_GET["SID"])) {
unset(
$_SESSION["Pecas"][$_GET["SID"]]["0"]);
unset(
$_SESSION["Pecas"][$_GET["SID"]]["1"]);
unset(
$_SESSION["Pecas"][$_GET["SID"]]["2"]);
}

echo
'Sua Peça foi deletada com Sucesso
<a href="'
. $file . '?action=add">Adicionar Outra</a><br>
<a href="'
. $file . '">Listar Peças</a>';
}

// Todas as Dirigencias
if (empty($_GET["action"])) { List(); } // Lista as Pecas ...
else if ($_GET["action"] == "add") { Add(); } // Adiciona uma Peca Form
else if ($_GET["action"] == "add2") { Add2(); } // Adiciona uma Peca Form
else if ($_GET["action"] == "delete") { Delete(); } // Adiciona uma Peca Form
?>


#11 victormangia

victormangia

    Doutor

  • Usuários
  • 783 posts
  • Sexo:Masculino
  • Localidade:barra mansa - rj

Posted 14/01/2005, 13:26

Galera , como eu faço pra somar isso $_SESSION['produtos'][$x][5] de todos os items cadastrados, pois essa parte no meu codigo consiste em um valor unitario de cada produto e eu gostaria de somar pra saber qual o valor total.

Edição feita por: victormangia, 14/01/2005, 14:14.





1 user(s) are reading this topic

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

IPB Skin By Virteq