اشکال در درج اطلاعات در جدول city

پرسیده شده
فعالیت 1388 روز پیش
دیده شده 542 بار
0

سلام استاد ببخشید من هر کار میکنم نمیتونم توی جدول city اطلاعاتی وارد کنم :

۱- بخش html , ajax :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Save City</title>
    <style>
        @font-face{
            font-family: Sahel;
            src: url('font/Sahel.eot');
            src: url('font/Sahel.eot?#iefix') format(Sahel-opentype),
                 url('font/Sahel.woff') format('wff'),
                 url('font/Sahel.ttf') format('truetype');
            font-weight: bold;
            font-style: normal;
        }
        body{
            text-align: center;
        }
        input#city, button {
            line-height: 30px;
            margin-top: 200px;
            padding: 0 30px;
            border-radius: 5px;
            border: 1px solid #81b7d0;
            font-family: Sahel;
            font-weight: bold;
        }
        input{
            direction: rtl;
        }
    </style>
</head>
<body>
    <form action="ajax-save-city.php" method="post" id="cityform">
        <button type="submit">افزودن شهر</button>
        <input type="text" name="city" id="city">
        <select name="province-id" id="province-id">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
        </select>
        <div id="result-tag"></div>
    </form>
    

    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    <script>
        $(document).ready(function(){
            var form = $('#cityform');
            var selectTag = $('#province-id').val();
            var city = $('#city').val();
            var resultTag = $('#result-tag');

            form.submit(function(event){
                event.preventDefault();
                $.ajax({
                    url : 'ajax-save-city.php',
                    method : 'post',
                    data : {
                            city : city,
                            provinceid: selectTag
                           },
                    success : function(response){
                        resultTag.html(response);
                    }
                });
            });
        });
    </script>
</body>
</html>

۲- و اینم بخش ذخیره در پایگاه داده:

<?php
#Input data from input field
$city = $_POST['city'];
$provinceid = $_POST['provinceid'];

#Connect to mysql
$mysql = new mysqli("localhost","root","","iran");

#Check connection
if($mysql->connect_error){
    echo "Failed to connect to MySQL : " . $mysql->connect_error , 'Error';
    die();
}

$mysql->set_charset('utf8');

#insert into database
$sql = "insert into city (name,province_id) values (?,?)";
$stmt = $mysql->prepare($sql);
$stmt->bind_param('si',$city,$provinceid);
$stmt->execute();
$stmt->close();

echo "شهر $city با موفقیت به استان $provinceid اضافه شد!";

استاد در واقع خطایی نشون نمیده حتی پیام با موفقیت ثبت شد هم نمایش میده ولی چیزی توی جدول city اضافه نمیشه

فایل پیوست

میثم نصرتی
میثم نصرتی

19 تیر 99

1
حذف شده

سلام 

ایراد کد شما اینجاست که قبل از اینکه فرم submit شه اومدی ولیو اینپوت ها رو گرفتی شما باید بعد از submit فرم ولیو رو بگیری 

<script>
    $(document).ready(function(){
        var form = $('#cityform');
        var resultTag = $('#result-tag');


        form.submit(function(event){
            var selectTag = $('#province-id').val();
            var city = $('#city').val();
            event.preventDefault();
            $.ajax({
                url : 'ajax-save-city.php',
                method : 'post',
                data : {
                    city : city,
                    provinceid: selectTag
                },
                success : function(response){
                    resultTag.html(response);
                }
            });
        });
    });
</script>

مابقی کدت مشکلی نداره

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

19 تیر 99

حذف شده
نشد
میثم نصرتی

19 تیر 99

حذف شده
درست شد ولی نه توی اون جدولی که استاد فرستاده بود خودم یکی دیگه عین جدول city درست کردم و درست کار کرد ولی نمیدونم چرا توی اون جدولی که استاد فرستاده بودن اضافه نمیشد. با تشکر
میثم نصرتی

19 تیر 99

حذف شده
ببخشید الان که بیشتر توجه کردم دیدم که فیلد هایی که فکر میکردم اضافه نشدن اضافه شدن، عجب مغزی دارم :(
میثم نصرتی

19 تیر 99

0
حذف شده

استاد در واقع خطایی نشون نمیده حتی پیام با موفقیت ثبت شد هم نمایش میده ولی چیزی توی جدول city اضافه نمیشه

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

19 تیر 99

0
حذف شده

خواهش میکنم 

ببینید زمانی که شما برای اولین بار صفحه رو باز میکنید مقدار اون اینپوت ها داخل هر کدوم از متغیر ها قرار میگیره خوب شما تازه صفحه رو باز کردید و اینپوت هاتون خالیه پس مقدار خالی داخل متغیر هاتون قرار میگیره 

و زمانی که روی دکمه ارسال کلیک میکنید و فرم سابمیت میشه چون صفحه از اول اجرا نمیشه و تنها کد هایی که داخل تابعی که برای سابمیت فرم نوشتین اجرا میشه اینپوت هاتون باید اونجا مقدارشون داخل هر متغیر ریخته  بشه ولی شما فقط زمانی که صفحه لود میشه این مقدار دهی رو انجام دادید پس اینپوت ها بصورت خالی ارسال میشن به سمت سرور 

پس باید شما بعد از سابمیت فرم مقدار اینپوت ها رو دریافت و به سمت سرور ارسال کنین.

در مورد کد های php هیچ مشکلی نداشتن شاید اسم دیتابیس مشکلی داشته و یا اسم جدول!

موفق باشید

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

19 تیر 99