2015-02-03 2 views
0

콘솔에 제대로 기록 될 때 데이터가 내 mysql 데이터베이스에 삽입되지 않는 이유를 알 수 없습니다.Ajax 요청으로 PHP 페이지로 데이터를 보내지 못했지만 콘솔에 잘 로그인했습니다.

내 형태는 다음과 같이

<form id="insertForm" type="post"> 
name: <input type="text" id="name" name="name"> 
activity: <input type="text" id="activity" name="activity"> 
level: <input type="number" id="level" name="level"> 
<input type="button" name="add" id="add" value="add"> 
</form> 

내 AJAX 콜 :

<script type="text/javascript"> 
$(document).ready(function() { 
$("#add").click(function(e){ 
var Data = $("#insertForm").serializeArray(); 
console.log(Data); 
$.ajax({ 
url : "insert.php", 
type: "POST", 
data : Data, 
success:function(data, textStatus, jqXHR) 
{ 
$('#msg').html(data); 
} 
}); 
$("#msg").slideDown("slow"); 
e.preventDefault(); 
}); 
}); 
</script> 

나의 PHP 인서트 : 나 데이터를 삽입 할 때

<?php 
if (!empty($_POST)) 
{ 
$dbhost = 'localhost'; 
$dbuser = 'lot_root'; 
$dbpass = ''; 
$con = mysql_connect($dbhost, $dbuser, $dbpass); 

$name = mysql_real_escape_string($_POST['name']); 
$activity = mysql_real_escape_string($_POST['activity']); 
$level = $_POST['level']; 

$sql = "INSERT INTO lottt ". 
     "(name, activity, level) ". 
     "VALUES('$name','$activity', '$level')"; 
mysql_select_db('lot'); 
mysql_close($con); 
} 
?> 

입력이 비아 필드는이 기록 도착 js 콘솔에 이렇게 잘 [Object, Object, Object]0: Objectname: "character_name"value: "aSD"__proto__: Object1: Object2: Objectlength: 3__proto__: Array[0] 하지만 아무것도 삽입되지 않습니다. 빠른 점검 후에 mysql 데이터베이스에 저장한다.

+0

당신은 전송되는 POST 요청을 검토 할 수 있습니까? – TZHX

+0

@ TZHX이게 무슨 뜻인가요, 내 무지와 죄송합니다. – Spade

+0

e.preventDefault()를 할 필요가 없다는 점을 제외하고는 클라이언트 측에서 잘못된 것을 볼 수 없습니다. PHP 쪽에서 mysql_query()는 어디에 있습니까 ?? – onegun

답변

3

저장하려면 쿼리를 실행해야합니다. mysql_* 라이브러리에 대해 대답 하겠지만, 더 이상 사용되지 않습니다.

이 흐름이 이동하도록되어 방법은 다음과 같습니다

$con = mysql_connect(....) or die(); 
mysql_select_db('database'); 

$name = mysql_real_escape_string($_POST['name']); 
$activity = mysql_real_escape_string($_POST['activity']); 
$level = $_POST['level']; 
$sql = "INSERT INTO lottt ". 
     "(name, activity, level) ". 
     "VALUES('$name','$activity', '$level')"; 

if(!mysql_query($sql)) { 
    die('Error: ' . mysql_error()); 
} else { 
    echo 'saved'; 
} 

당신은 mysql_* 기능 사용을 중지해야한다. 라이브러리는 더 이상 사용되지 않습니다.

보다 현대적인 라이브러리이므로 PDO 또는 MySQLi을 사용하고 장애물을 극복해야만 학습할 수 있지만 장애인 도서관을 유능하게 활용하면 좋은 세상을 만들 수 있습니다.

자료 :

+0

대단히 감사합니다. mysqli로 전환하고 PDO를 자세히 살펴 보겠습니다. – Spade

+0

내 기쁨! PDO를 제안합니다. 좋은 방법입니다. – Darren

관련 문제