سلام استاد ببخشید من هر کار میکنم نمیتونم توی جدول 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 اضافه نمیشه
سلام
ایراد کد شما اینجاست که قبل از اینکه فرم 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>
مابقی کدت مشکلی نداره
استاد در واقع خطایی نشون نمیده حتی پیام با موفقیت ثبت شد هم نمایش میده ولی چیزی توی جدول city اضافه نمیشه
خواهش میکنم
ببینید زمانی که شما برای اولین بار صفحه رو باز میکنید مقدار اون اینپوت ها داخل هر کدوم از متغیر ها قرار میگیره خوب شما تازه صفحه رو باز کردید و اینپوت هاتون خالیه پس مقدار خالی داخل متغیر هاتون قرار میگیره
و زمانی که روی دکمه ارسال کلیک میکنید و فرم سابمیت میشه چون صفحه از اول اجرا نمیشه و تنها کد هایی که داخل تابعی که برای سابمیت فرم نوشتین اجرا میشه اینپوت هاتون باید اونجا مقدارشون داخل هر متغیر ریخته بشه ولی شما فقط زمانی که صفحه لود میشه این مقدار دهی رو انجام دادید پس اینپوت ها بصورت خالی ارسال میشن به سمت سرور
پس باید شما بعد از سابمیت فرم مقدار اینپوت ها رو دریافت و به سمت سرور ارسال کنین.
در مورد کد های php هیچ مشکلی نداشتن شاید اسم دیتابیس مشکلی داشته و یا اسم جدول!
موفق باشید