Olá, estou criando um painel a qual eu carrego de uma Select os valores e salvo em SQL, porém, por algum motivo o método POST não está retornando os valores da SELECT, antigamente eu conseguia criar, porém, com um tempo parado, não estou conseguindo, criei códigos de testes para verificar o que o POST está retornando, e infelizmente, não retorna a SELECT, somente as INPUTS, segue abaixo o código completo.
<?php
require_once "class/Session.class.php";
require_once "class/Auth.class.php";
$auth = new Auth();
$session = new Session();
if(!$session->check()){
@header('Location: index');
}
if(!isset($_GET['id']) || empty($_GET['id'])){
@header('Location: users');
}
$id = (int)trim($_GET['id']);
if(isset($_GET['delete'])){//check if
if($session->check()){
if($auth->isAdmin($session->getUser())){
$sql = $auth->connection->prepare("SELECT * FROM users WHERE id=?;");
$sql->execute(array($id));
$d = $sql->fetch(PDO::FETCH_ASSOC);
$nome = $d['user'];
$sql = $auth->connection->prepare("DELETE FROM users WHERE id=?;");
$sql->execute(array($id));
print "<script>alert('Cliente: $nome foi deletado com sucesso.')</script>";
print "<meta http-equiv=\"refresh\" content=\"0;url=users.php\">";
die();
}else{
@header('Location: index');
}
}else{
@header('Location: index');
}
}
if(isset($_POST['senha']) && !empty($_POST['senha'])) {//Check if senha is set and isn't empty
if($session->check()){//check if is logged
if($auth->isAdmin($session->getUser())){//get username saved on hashedsession is admin
$pass = (String)trim($_POST['senha']);//get new password
$auth->changePass($id,$pass);//change password of User by ID
print "<script>alert('Senha alterada com Sucesso.')</script>";//Print Success Message
}else{
@header('Location: index');
}
}else{
@header('Location: index');
}
}
if(isset($_POST['update'])){
$body = "";
foreach ($_POST as $key => $value){
$body .= $key . ' -> ' . $value . '<br/>';
}
$ip = (String)trim($_POST['ip']);
$porta = (int)trim($_POST['porta']);
//$plugins = $_POST['listaPlugins']; //Quando tentei Pegar não retorna.
echo $body;//Função criada para printar os valores que estão vindo no $_POST, únicos valores que estão retornando são IP e PORTA
die();//Dando DIE somente para testar e ver o echo $body;
}
$sql = $auth->connection->prepare("SELECT * FROM users WHERE id=?;");
$sql->execute(array($id));
if($sql->rowCount() > 0){
$dados = $sql->fetch(PDO::FETCH_ASSOC);
$id = $dados['id'];
$nome = $dados['user'];
$ip = $dados['ip'];
$porta = $dados['port'];
$plugins = explode(" ",$dados['plugin']);
}else{
@header('Location: users');
}
?>
<!DOCTYPE html>
<html class='no-js' lang='en'>
<head>
<meta charset='utf-8'>
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
<title>Licenças | Lab</title>
<meta content='' name='author'>
<meta content='' name='description'>
<meta content='' name='keywords'>
<link href="assets/stylesheets/application-a07755f5.css" rel="stylesheet" type="text/css" />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link href="assets/images/favicon.ico" rel="icon" type="image/ico" />
</head>
<body class='main page'>
<!-- Navbar -->
<?php include "@include_head.php"; ?>
<!-- Tools -->
<section id='tools'>
<ul class='breadcrumb' id='breadcrumb'>
<li class='title'>Administrativo</li>
<li>Clientes</li>
<li><?php echo $nome;?></li>
</ul>
<div id='toolbar'>
<div class='btn-group'>
<a class='btn' data-toggle='toolbar-tooltip' href='#' title='Alterar Senha de <?php echo $nome;?> ' onclick="return changePassWord();">
<i class='icon-building'></i>
</a>
</div>
</div>
</section>
<!-- Content -->
<div id='content'>
<div class='panel panel-default'>
<div class='panel-heading'>
<i class='icon-edit icon-large'></i>
Licenses
</div>
<div class='panel-body'>
<form method="POST" action="?id=<?php echo $id;?>">
<fieldset>
<legend>Dados</legend>
<div class='form-group'>
<label class='control-label'>IP</label>
<input class='form-control' name="ip" data-toggle='tooltip' value="<?php echo $ip;?>" title='IP da máquina onde a licença está ativa.'>
</div>
<div class='form-group'>
<label class='control-label'>Porta</label>
<input class='form-control' name="porta" data-toggle='tooltip' value="<?php echo $porta;?>" title='Porta do servidor onde a licença está ativa.'>
</div>
</fieldset>
<fieldset>
<legend>Plugins</legend>
<div class='form-group'>
<label class='control-label'>Plugins</label>
<select class='form-control' id="select" name="listaPlugins" multiple size="10"><!-- Já tentei setar o attributo name como array (name="listaPlugins[]") e também alterar o nome-->
<?php
if($plugins != null){
foreach($plugins as $t){
print "<option value=\"$t\">$t</option>";
}
}
?>
</select>
<br/>
<input class="form-control" id="addPlugin">
<button class="btn btn-default" onclick="return addOnList();">Adicionar Plugin</button>
<button class="btn btn-default" onclick="return removeSelected();">Deletar Plugin Selecionado</button>
</div>
</fieldset>
<div class='form-actions'>
<button class='btn btn-default' name="update" >Salvar Edições</button>
</div>
</form>
<form action="?id=<?php echo $id;?>" method="POST" id="ksks" name="alterarSenha">
<input id="senha" name="senha" type="hidden">
</form>
</div>
</div>
</div>
</div>
<!-- Footer -->
<!-- Javascripts -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script><script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script><script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js" type="text/javascript"></script><script src="assets/javascripts/application-985b892b.js" type="text/javascript"></script>
<script>
var select = document.getElementById('select');
function removeSelected(){
select.remove(select.selectedIndex);
return false;
}
function addOnList(){
var input = document.getElementById('addPlugin').value;
if(input == ""){
return false;
}
var option = document.createElement("option");
option.text = input;
option.value = input;
select.add(option);
document.getElementById('addPlugin').value = "";
return false;
}
function changePassWord(){
var input = prompt("Digite a Nova Senha para o Usuário <?php echo $nome;?>");
if(input != null && input != ""){
document.getElementById("senha").value = input;
document.getElementById("ksks").submit();
return true;
}
return false;
}
</script>
</body>
</html>
Pergunta
StoreDev
Olá, estou criando um painel a qual eu carrego de uma Select os valores e salvo em SQL, porém, por algum motivo o método POST não está retornando os valores da SELECT, antigamente eu conseguia criar, porém, com um tempo parado, não estou conseguindo, criei códigos de testes para verificar o que o POST está retornando, e infelizmente, não retorna a SELECT, somente as INPUTS, segue abaixo o código completo.
<?php require_once "class/Session.class.php"; require_once "class/Auth.class.php"; $auth = new Auth(); $session = new Session(); if(!$session->check()){ @header('Location: index'); } if(!isset($_GET['id']) || empty($_GET['id'])){ @header('Location: users'); } $id = (int)trim($_GET['id']); if(isset($_GET['delete'])){//check if if($session->check()){ if($auth->isAdmin($session->getUser())){ $sql = $auth->connection->prepare("SELECT * FROM users WHERE id=?;"); $sql->execute(array($id)); $d = $sql->fetch(PDO::FETCH_ASSOC); $nome = $d['user']; $sql = $auth->connection->prepare("DELETE FROM users WHERE id=?;"); $sql->execute(array($id)); print "<script>alert('Cliente: $nome foi deletado com sucesso.')</script>"; print "<meta http-equiv=\"refresh\" content=\"0;url=users.php\">"; die(); }else{ @header('Location: index'); } }else{ @header('Location: index'); } } if(isset($_POST['senha']) && !empty($_POST['senha'])) {//Check if senha is set and isn't empty if($session->check()){//check if is logged if($auth->isAdmin($session->getUser())){//get username saved on hashedsession is admin $pass = (String)trim($_POST['senha']);//get new password $auth->changePass($id,$pass);//change password of User by ID print "<script>alert('Senha alterada com Sucesso.')</script>";//Print Success Message }else{ @header('Location: index'); } }else{ @header('Location: index'); } } if(isset($_POST['update'])){ $body = ""; foreach ($_POST as $key => $value){ $body .= $key . ' -> ' . $value . '<br/>'; } $ip = (String)trim($_POST['ip']); $porta = (int)trim($_POST['porta']); //$plugins = $_POST['listaPlugins']; //Quando tentei Pegar não retorna. echo $body;//Função criada para printar os valores que estão vindo no $_POST, únicos valores que estão retornando são IP e PORTA die();//Dando DIE somente para testar e ver o echo $body; } $sql = $auth->connection->prepare("SELECT * FROM users WHERE id=?;"); $sql->execute(array($id)); if($sql->rowCount() > 0){ $dados = $sql->fetch(PDO::FETCH_ASSOC); $id = $dados['id']; $nome = $dados['user']; $ip = $dados['ip']; $porta = $dados['port']; $plugins = explode(" ",$dados['plugin']); }else{ @header('Location: users'); } ?> <!DOCTYPE html> <html class='no-js' lang='en'> <head> <meta charset='utf-8'> <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'> <title>Licenças | Lab</title> <meta content='' name='author'> <meta content='' name='description'> <meta content='' name='keywords'> <link href="assets/stylesheets/application-a07755f5.css" rel="stylesheet" type="text/css" /> <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <link href="assets/images/favicon.ico" rel="icon" type="image/ico" /> </head> <body class='main page'> <!-- Navbar --> <?php include "@include_head.php"; ?> <!-- Tools --> <section id='tools'> <ul class='breadcrumb' id='breadcrumb'> <li class='title'>Administrativo</li> <li>Clientes</li> <li><?php echo $nome;?></li> </ul> <div id='toolbar'> <div class='btn-group'> <a class='btn' data-toggle='toolbar-tooltip' href='#' title='Alterar Senha de <?php echo $nome;?> ' onclick="return changePassWord();"> <i class='icon-building'></i> </a> </div> </div> </section> <!-- Content --> <div id='content'> <div class='panel panel-default'> <div class='panel-heading'> <i class='icon-edit icon-large'></i> Licenses </div> <div class='panel-body'> <form method="POST" action="?id=<?php echo $id;?>"> <fieldset> <legend>Dados</legend> <div class='form-group'> <label class='control-label'>IP</label> <input class='form-control' name="ip" data-toggle='tooltip' value="<?php echo $ip;?>" title='IP da máquina onde a licença está ativa.'> </div> <div class='form-group'> <label class='control-label'>Porta</label> <input class='form-control' name="porta" data-toggle='tooltip' value="<?php echo $porta;?>" title='Porta do servidor onde a licença está ativa.'> </div> </fieldset> <fieldset> <legend>Plugins</legend> <div class='form-group'> <label class='control-label'>Plugins</label> <select class='form-control' id="select" name="listaPlugins" multiple size="10"><!-- Já tentei setar o attributo name como array (name="listaPlugins[]") e também alterar o nome--> <?php if($plugins != null){ foreach($plugins as $t){ print "<option value=\"$t\">$t</option>"; } } ?> </select> <br/> <input class="form-control" id="addPlugin"> <button class="btn btn-default" onclick="return addOnList();">Adicionar Plugin</button> <button class="btn btn-default" onclick="return removeSelected();">Deletar Plugin Selecionado</button> </div> </fieldset> <div class='form-actions'> <button class='btn btn-default' name="update" >Salvar Edições</button> </div> </form> <form action="?id=<?php echo $id;?>" method="POST" id="ksks" name="alterarSenha"> <input id="senha" name="senha" type="hidden"> </form> </div> </div> </div> </div> <!-- Footer --> <!-- Javascripts --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script><script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script><script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js" type="text/javascript"></script><script src="assets/javascripts/application-985b892b.js" type="text/javascript"></script> <script> var select = document.getElementById('select'); function removeSelected(){ select.remove(select.selectedIndex); return false; } function addOnList(){ var input = document.getElementById('addPlugin').value; if(input == ""){ return false; } var option = document.createElement("option"); option.text = input; option.value = input; select.add(option); document.getElementById('addPlugin').value = ""; return false; } function changePassWord(){ var input = prompt("Digite a Nova Senha para o Usuário <?php echo $nome;?>"); if(input != null && input != ""){ document.getElementById("senha").value = input; document.getElementById("ksks").submit(); return true; } return false; } </script> </body> </html>
Editado por StoreDevLink para o comentário
Compartilhar em outros sites
0 respostass 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.