(영어, 죄송합니다).Ajax 코드가 제대로 작동하지 않습니다.
내가하고 싶은 것은 기본 데이터베이스 삽입입니다. 실제로 삽입 부분이 잘 작동합니다. 삽입 후 process.php가 index.php로 리다이렉트됩니다.하지만 같은 페이지에 머물러 있어야하며 모든 필드를 지워야합니다. 잘못하고있다.
이 index.php에이은 site.js
$("#submit").click(function() {
$.post($("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
clear();
});
$("#myForm").submit(function() {
return false;
});
});
function clear() {
$("#myForm :input").each(function() {
$(this).val("");
});
}
입니다
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="process.php" id="myForm" method="post">
UserName <input type="text" name="uname"><br>
Pass <input type="text" name="pass"><br>
FirstName <input type="text" name="fname"><br>
LastName <input type="text" name="lname"><br>
<button id="submit" value="register"></button>
</form>
<div id="ack">Ack</div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="site.js"></script>
</body>
</html>
파일이며, 이것은 당신이 이런 식으로 시도
<?php
require("config.php");
$uname =$_POST["uname"];
$pass = $_POST["pass"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$insert=$db->prepare("insert into users (uname,pass,fname,lname) values(?,?,?,?)");
$insert->bind_param("ssss",$uname,$pass,$fname,$lname);
if($insert->execute()){
echo "ok";
}
else
{$db->error;}
?>
캡처 제출을 할 필요가 없지만 클릭의 기본 동작을 방지해야합니다. –
** 일반 텍스트 비밀번호를 저장하지 마십시오! ** PHP의 [내장 함수] (http://jayblanchard.net/proper_password_hashing_with_PHP.html)를 사용하여 비밀번호 보안을 처리하십시오. 5.5보다 작은 PHP 버전을 사용하고 있다면'password_hash()'[compatibility pack] (https://github.com/ircmaxell/password_compat)을 사용할 수 있습니다. *** [암호를 잊지 마세요] (http://stackoverflow.com/q/36628418/1011527) *** 또는 해싱을하기 전에 다른 클렌징 메커니즘을 사용하십시오. 이렇게하면 암호가 변경되어 불필요한 추가 코딩이 발생합니다. –
도와 주셔서 감사합니다. –