php ajax post 500 (Internal Server Error) 問題
php + jquery + mysql 表單資料無法寫入資料庫
放上服務器submit後 出現
POST https://test.online/001.php 500 (Internal Server Error)
XHR finished loading: POST "https://chienweiluo.online/001.php".
在本地端調適(127.0.0.1) 是
POST http://127.0.0.1:63943/001.php 404 (Not Found)
我網上查都是說路徑的問題, 可我已經把路徑弄妥了, 直接與./index.html 在同一層, 還是報錯各位大神幫看看吧
001.php
<?php
$data = $_POST;
$dbhost = 'chienweiluo.online';
$dbuser = 'chienlxd_wei';
$dbname = 'chienlxd_reply';
$dbpasswd = 'chienwei0526';
$dsn = "mysql:host=".$dbhost.";dbname=".$dbname;
try
{
$conn = new PDO($dsn,$dbuser,$dbpasswd);
$conn->exec("SET CHARACTER SET utf8");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: ".$e->getMessage();
}
$sql = "INSERT INTO `users`(name, email, content,time) VALUES(:name, :email, :content,:time)";
$dataArr = array(
':name' => $data['name'],
':email' => $data['email'],
':content' => $data['content'],
':time' => $data['time']);
try
{
$sth = $conn->prepare($sql);
if($sth)
{
$result = $sth->execute($dataArr);
if($result)//true or false
{
$result = 'success';
echo json_encode($result);
return;
}
else
{
$result = 'failed';
echo json_encode($result);
return;
}
}
}
catch(PDOException $e)
{
echo "執行預存程序失敗. ".$e->getMessage();
}
?>
ajax& form
<form action="" method="POST" id="form">
<div class="row uniform">
<input id="time" type="hidden" name="time" :value="new Date()">
<div class="6u 12u$(xsmall)">
<input type="text" name="name" id="name" placeholder="Name(requied)" v-model="name" :disabled="!inputable" /> </div>
<div class="6u$ 12u$(xsmall)">
<input type="email" name="email" id="email" placeholder="Email(requied)" v-model="email" :disabled="!inputable" /> </div>
<div class="12u$">
<textarea name="message" id="message" placeholder="Message" rows="4" :disabled="!inputable"></textarea>
</div>
<div class="12u$">
<ul class="actions">
<li>
<input type="submit" value="Send Message" class="special" v-show="canclick" v-on:click.prevent="sendmsg()" :disabled="validbtn" /> </li>
</ul>
</div>
</div>
</form>
<script src="assets/js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("input[type='submit']").on('click', function(){
$.ajax({
url: './001.php',
method : "POST",
dataType : 'json',
data : $("#form").serialize(),
complete : function(result) {
console.log("coplete"+result);
},
error: function(result) {
console.log("erroe"+result);
}
})
});
});
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的form表单里的action="" 表示提交到当前页面,你直接提交肯定会报405错误,你的提交按钮即做了提交表单又做了异步请求(input type="submit" 点击会触发表单提交事件),表单提交会阻止ajax请求,你可以将form表单里的 submit 改为span,这样就不会触发表单提交,走异步请求,或者是在on 的方法里阻止form提交事件