Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal.
Eu achei um CRUD na internet e modifiquei para o que eu precisava, porém quando clico em salvar, ele não faz nada.
Vou postar aqui os scripts se alguém puder dar uma olhada e me dizer pq não esta salvando eu ficarei muito grato!
Eu abri o meu MySQL 5.7 Command Line Client - Unicode e criei:
Create database cadastroevento;
Use cadastroevento;
Create table cadastroevento (
Id int(11) not null auto_increment primary key,
data varchar(50),
evento varchar(1000),
obs varchar (2000),
horario varchar(50)
);
Depois fui para o php:
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Agenda</title>
<link rel="stylesheet" type="text/css" href="css/easyui.css">
<link rel="stylesheet" type="text/css" href="css/icon.css">
<link rel="stylesheet" type="text/css" href="css/demo.css">
<style type="text/css">
#fm{
margin:0;
padding:10px 30px;
}
.ftitle{
font-size:14px;
font-weight:bold;
color:#666;
padding:5px 0;
margin-bottom:10px;
border-bottom:1px solid #ccc;
}
.fitem{
margin-bottom:5px;
}
.fitem label{
display:inline-block;
width:80px;
}
</style>
<script type="text/javascript" src="js/jquery-1.6.min.js"></script>
<script type="text/javascript" src="js/jquery.easyui.min.js"></script>
<script type="text/javascript">
var url;
function newEvent(){
$('#dlg').dialog('open').dialog('setTitle','Novo Evento');
$('#fm').form('clear');
url = 'salvar_cadastroevento.php';
}
function editEvent(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','Editar Evento');
$('#fm').form('load',row);
url = 'atualizar_cadastroevento.php?id='+row.id;
}
}
function saveEvent(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = eval('('+result+')');
if (result.success){
$('#dlg').dialog('close');
$('#dg').datagrid('reload');
} else {
$.messager.show({
title: 'Erro',
msg: result.msg
});
}
}
});
}
function removeEvent(){
var row = $('#dg').datagrid('getSelected');
if (row){
$.messager.confirm('Confirm','Tem certeza que deseja remover o Evento?',function(r){
if (r){
$.post('remover_cadastroevento.php',{id:row.id},function(result){
if (result.success){
$('#dg').datagrid('reload');
} else {
$.messager.show({
title: 'Error',
msg: result.msg
});
}
},'json');
}
});
}
}
</script>
</head>
<body>
<center>
<h2>Agenda</h2>
<table id="dg" title="Cadastar Evento" class="easyui-datagrid" style="width:700px;height:250px"
url="pegar_cadastroevento.php"
toolbar="#toolbar" pagination="true"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="data" width="50">Data</th>
<th field="evento" width="50">Evento</th>
<th field="obs" width="50">Observação</th>
<th field="horario" width="50">Horário</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newEvent()" title="Adicionar Evento">Novo Evento</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editEvent()" title="Alterar Dados do Evento">Editar Evento</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeEvent()" title="Remover Evento">Remover Evento</a>
</div>
<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">Dados do Evento</div>
<form id="fm" method="post" novalidate>
<div class="fitem">
<label>Data:</label>
<input name="data" class="easyui-validatebox" required>
</div>
<div class="fitem">
<label>Evento</label>
<input name="evento" class="easyui-validatebox" required>
</div>
<div class="fitem">
<label>Observação:</label>
<input name="obs">
</div>
<div class="fitem">
<label>Horário:</label>
<input name="horario" class="easyui-validatebox" required>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveEvent()">Salvar</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancelar</a>
</div>
</center>
</body>
</html>
conn.php
<?php
$conn = @mysql_connect('127.0.0.1','root','1234');
if (!$conn) {
die('Não foi possível Conectar: ' . mysql_error());
}
mysql_select_db('cadastroevento', $conn);
?>
pegar_cadastroevento.php
<?php
$page = isset($_POST['page']) ? intval($_POST['page']) : 1;
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
$offset = ($page-1)*$rows;
$result = array();
include 'conn.php';
$rs = mysql_query("select count(*) from cadastroevento");
$row = mysql_fetch_row($rs);
$result["total"] = $row[0];
$rs = mysql_query("select * from cadastroevento limit $offset,$rows");
$items = array();
while($row = mysql_fetch_object($rs)){
array_push($items, $row);
}
$result["rows"] = $items;
echo json_encode($result);
?>
salvar_cadastroevento.php
<?php
$data = $_REQUEST['data'];
$evento = $_REQUEST['evento'];
$obs = $_REQUEST['obs'];
$horario = $_REQUEST['horario'];
include 'conn.php';
$sql = "insert into cadastroevento(data,evento,obs,horario) values('$data','$evento','$obs','$horario')";
$result = @mysql_query($sql);
if ($result){
echo json_encode(array('success'=>true));
} else {
echo json_encode(array('msg'=>'Erro ao inserir dados.'));
}
?>
atualizar_cadastroevento.php
<?php
$id = intval($_REQUEST['id']);
$data = $_REQUEST['data'];
$evento = $_REQUEST['evento'];
$obs = $_REQUEST['obs'];
$horario = $_REQUEST['horario'];
include 'conn.php';
$sql = "update cadastroevento set data='$data',evento='$evento',obs='$obs',horario='$horario' where id=$id";
$result = @mysql_query($sql);
if ($result){
echo json_encode(array('success'=>true));
} else {
echo json_encode(array('msg'=>'Erro ao atualizar dados.'));
}
?>
remover_cadastroevento.php
<?php
$id = intval($_REQUEST['id']);
include 'conn.php';
$sql = "delete from cadastroevento where id=$id";
$result = @mysql_query($sql);
if ($result){
echo json_encode(array('success'=>true));
} else {
echo json_encode(array('msg'=>'Erro ao remover dados.'));
}
?>
Eu não entendo muito de php e mysql, então bem provável que esteja fazendo algo errado rsrs
Então se alguém puder me ajudar eu agradeço desde já!
Muito obrigado e boa noite!
Gabriel HemingO que acha sobre usar ajax nesse caso? O que recomenda, usar ajax ou php direto?
Sobre Ajax
É sempre uma boa usar para deixar uma interface show, porém usar demais deixa brechas de segurança, tente passar tokens na requisição ajax para validar esse recebimento. Uma vez eu vi um cara que fez um formulário de e-mail simples se ferrar porque usou ajax, nego rodou um script JS em looping no console mesmo do chrome e lotou a caixa de e-mail do maluco.
Para o jovem que criou o tópico só tenho uma frase.
Aprenda PDO...
Segue baixo exemplos de conexão em PDO
-
<?php
-
-
try {
-
$db = new PDO($host, $usuario, $senha,array( PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8' ));
-
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-
} catch (PDOException $e) {
-
if($e->getCode() == 1049){
-
echo "Banco de dados errado.";
-
}else{
-
echo $e->getMessage();
-
}
-
Agora a consulta e impressão dos dados
-
<?php
-
-
try {
-
$sql = $db->prepare("SELECT * FROM sua_tabela");
-
$sql->execute();
-
} catch (PDOException $e) {
-
echo $e->getMessage();
-
-
$registro = $sql->fetch(PDO::FETCH_OBJ);
-
-
$registro->nome_do_campo;
-
Tem um post no meu blog sobre isso
http://blog.squad.net.br/2015/11/25/diga-nao-ao-mysql_-e-sim-ao-pdo-php/
Qualquer dúvida podem perguntar
Até
@junior.vieira
Eessa questão é mais relacionada com UX (User eXperience) do que com HTML/PHP.
Sendo os métodos de requisição de acordo com a W3C, nesse caso requisições de modificação no SGBD como POST e as consultas como GET, a forma de requisição síncrona ou assíncrona é irrelevante.
Agora, se um, ou outro, melhoram a relação de interação do usuário com o sistema/site, deve ser a alternativa utilizada no ponto de vista de UX.
[...]Uma vez eu vi um cara que fez um formulário de e-mail simples se ferrar porque usou ajax, nego rodou um script JS em looping no console mesmo do chrome e lotou a caixa de e-mail do maluco.
Não gostaria de sair do tópico habitual, mas sobre seu exemplo, essa vulnerabilidade não é exclusiva do ajax e pode ser reproduzida, no próprio console do navegador, com um formulário convencional. Pessoas maliciosas sempre existirão, além de ser um teste padrão de vulnerabilidade.
Vou dar algumas dicas para começar a aparecem os problemas, depois de encontrar os problemas, iremos para as suas respectivas soluções.
Não utilize o supressor de erros (@). 99,9% dos erros do PHP podem ser tratados, os erros que não podem ser, devem ser exibidos. Todos os erros devem ser exibidos de forma amigável ao usuário.
Não utilize as funções mysql_*, há anos não são recomendadas, estão obsoletas desde o PHP 5.5 e foram removidas no PHP 7. Utilize mysqli ou PDO. mysqli pode ser procedural ou OO, PDO somente OO.
Depois disso, veja os erros que irão apresentar no seu script.