php ajax post 500 (Internal Server Error) 問題

发布于 2022-09-05 08:40:10 字数 3502 浏览 19 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾冷 2022-09-12 08:40:10

你的form表单里的action="" 表示提交到当前页面,你直接提交肯定会报405错误,你的提交按钮即做了提交表单又做了异步请求(input type="submit" 点击会触发表单提交事件),表单提交会阻止ajax请求,你可以将form表单里的 submit 改为span,这样就不会触发表单提交,走异步请求,或者是在on 的方法里阻止form提交事件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文