Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, bom dia.
Estou tendo certa dificuldade em manipular informações entre javascript e PHP. Tenho duas páginas, uma com um textbox e um submit e outra escrita em php onde faço conexão com o mysql e tento dar o insert, só que quando vou ver no banco, a tabela está em branco (não NULL, um espaço em branco tipo " ").
Esta é a primeira página, onde tem os campos e o script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
</head>
<input type="text" name="codigo" id="codigo" />
<input type="button" name="btn" id="btn" value="Submit" onclick="tst()" />
<script>
function tst(){
var info={code: $('#codigo').val()};
$.post({
url: "testejquery.php",
dataType:"text",
data: info,
success: function() {
window.open('testejquery.php');
}
});
console.log(info);
}
</script>
<body>
</body>
</html>
No console eu consigo ver que a variável foi preenchida corretamente.
Aqui a segunda página:
<?php
mysql_connect("localhost:3306", "root", "") or die(mysql_error());
mysql_select_db("teste") or die(mysql_error());
error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);
$dado = (isset( $_POST['muge']));
$sql = "INSERT INTO test (coisa) VALUES ('$coisa')";
$result = mysql_query($sql) or die(mysql_error());
?>
O insert até que funciona, porém coloca tudo em branco no BD, como se não estivesse recebendo a informação da primeira pagina
Alguém pode me dar uma luz?Tens razão Harry, chegando em casa vou arrumar isso aí.
@wootzor Então cara, eu fiz as alterações na segunda pagina, agora ficou assim:
<?php
mysql_connect("localhost:3306", "root", "") or die(mysql_error());
mysql_select_db("teste") or die(mysql_error());
error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);
$dado = (isset($_POST['info']));
$sql = "INSERT INTO test (coisa) VALUES ('$dado')";
$result = mysql_query($sql) or die(mysql_error());
echo $dado;
?>
Mas ainda tá indo em branco pro BD Da forma como tens, $dado é true ou false (isset é uma função booleana).
Repara na minha instrução:
$dado = isset($_POST['muge']) ? $_POST['muge'] : null;
Ou seja, é preciso verificar se $_POST['muge'] tem valor ou não e só em caso afirmativo é que fazes o INSERT.>
7 horas atrás, wootzor disse:
Da forma como tens, $dado é true ou false (isset é uma função booleana).
Repara na minha instrução:
$dado = isset($_POST['muge']) ? $_POST['muge'] : null;
Ou seja, é preciso verificar se $_POST['muge'] tem valor ou não e só em caso afirmativo é que fazes o INSERT.
Por isso que as vezes eu alterava algumas linhas e testava e no BD aparecia 1.
Já to desistindo desse negocio de $.ajax e $.post e mandando a informação por cookie. Será que da problema?Nem tinha observado isso, já mexi tanto nesse negócio tentando fazer funcionar, que me passou despercebido esse detalhe...
Teoricamente foi resolvida minha situação (desisti do $.post e usei cookies). Como faz pra dar o tópico como encerrado?
Não seria antes isto?:
$dado = isset($_POST['muge']) ? $_POST['muge'] : null;
if (!is_null($dado))
{