آپدیت کردن دیتابیس با استفاده از ajax و php

حل شده 

PHP

توسط sinapars در 11 ماه پیش
3 55.7k 2 9 ماه پیش
sinapars shaya digisys behzadhasanpor
2

سلام وقت همگی بخیر من همچین جدولی دارم میخوام وقتی روی آیکون زرد کلیک میکنم بتونم اون input رو تو دیتابیس آپدیت کنم حالا با هر تکتولوژی که بشه که فک کنم ajax بهتر باشه توضیح تصویر

 <?php require_once 'section/Header.php' ?>

<div class="container">
   <div class="row">
      <div class="col">
         <div class="card">
            <div class="card-header">
               <h5>Search Persons</h5>
            </div>
            <div class="card-body">
               <div class="row justify-content-between">
                  <div class="col-md-4 offset-md-8">
                     <form action="" method="GET">
                        <input name="PersonnelCode" type="number" class="form-control" placeholder="PersonnelCode">
                  </div>
               </div>
            </div>
            </form>
            <div class="card-footer">
               <small class="text-muted">You can search by PersonnelCode</small>
            </div>
         </div>
         <ul class="nav nav-tabs" id="myTab1" role="tablist">
            <li class="nav-item">
               <a class="nav-link active" id="user-tab" data-toggle="tab" href="#PInfo" role="tab" aria-controls="home" aria-selected="true">Personal Information</a>
            </li>
            <li class="nav-item">
               <a class="nav-link" id="designer-tab" data-toggle="tab" href="#Performance" role="tab" aria-controls="profile" aria-selected="false">Performance</a>
            </li>
         </ul>
         <div class="tab-content User-Lists" id="myTabContent1">
            <div class="tab-pane fade show active" id="PInfo" role="tabpanel" aria-labelledby="home-tab">
               <div class="widget-timeline m-b-25">
                   

	   <table class="tbl-qa">
		  <thead>
			  <tr>
				<th class="table-header" width="10%">Q.No.</th>
				<th class="table-header">Question</th>
				<th class="table-header">Answer</th>
			  </tr>
		  </thead>

		  
                  <?php while ($row = $statment->fetch()): ?>
                  <div class="text-center project-main">
                     <img class="img-fluid rounded-circle" src="assets/images/user/avatar-2.jpg" alt="dashboard-user">
                     <?php echo "<h5 class='mt-4 calibri'>" . $row['firstname'] . " " . $row['lastname'] . "</h5>";?>
                     <?php echo "<span>" . $row['job'] . "</span>";?>
                  </div>
                  <div class="table-responsive">
                     <table class="table table-hover">
                        <thead class="thead-dark">
                           <tr>
                              <th><i class="fa fa-code text-danger"></i> Personnel Code</th>
                              <th><i class="fas fa-barcode text-danger"></i>  National Code</th>
                              <!-- <th><i class="feather icon-user text-danger"></i> First Name</th>
                                 <th><i class="feather icon-user text-danger"></i> Last name</th>
                                 -->
                              <th><i class="fa fa-envelope text-danger"></i> Email</th>
                              <th><i class="fa fa-birthday-cake text-danger"></i> Birthday</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <?php echo "<td>" . $row['PersonnelCode'] . "</td>";?>
                              <?php echo "<td>" . $row['NationalCode'] . "</td>";?>
                              <?php echo "<td>" . $row['email'] . "</td>";?>
                              <?php echo "<td>" . $row['birthday'] . "</td>";?>
                           </tr>
                        </tbody>
                     </table>
                  </div>
                  <div class="table-responsive">
                     <table class="table table-hover">
                        <thead class="thead-dark">
                           <tr>
                              <th><i class="fa fa-mobile text-danger"></i> Mobile No.</th>
                              <th><i class="fa fa-phone text-danger"></i> Home No.</th>
                              <th><i class="fas fa-heart text-danger"></i> Marital Status</th>
                              <th><i class="fas fa-city text-danger"></i> City</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <?php echo "<td>" . $row['mobilenumber'] . "</td>";?>
                              <?php echo "<td>" . $row['homenumber'] . "</td>";?>
                              <?php echo "<td>" . $row['maritalst'] . "</td>";?>
                              
                              






                           </tr>
                        </tbody>
                     </table>
                  </div>
                  <div class="table-responsive">
                     <table class="table table-hover">
                        <thead class="thead-dark">
                           <tr>
                              <th><i class="fa fa-map-marker text-danger"></i> Address</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <?php echo "<td>" . $row['address'] . "</td>";?>
                           </tr>
                     </table>
                     </tbody>
                  </div>
                  <div class="table-responsive">
                     <table class="table table-hover">
                        <thead class="thead-dark">
                           <tr>
                              <th><i class="fas fa-university text-danger"></i> Last educational certificate</th>
                              <th><i class="fas fa-wrench text-danger"></i> Expertise</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <?php echo "<td>" . $row['lastedce'] . "</td>";?>
                              <?php echo "<td>" . $row['expertise'] . "</td>";?>
                           </tr>
                        </tbody>
                     </table>
                  </div>
                  <div class="table-responsive">
                     <table class="table table-hover">
                        <thead class="thead-dark">
                           <tr>
                              <th><i class="fa fa-venus-mars text-danger"></i> Sex</th>
                              <th><i class="fas fa-user-md text-danger"></i> Job</th>
                              <th><i class="fas fa-user-clock text-danger"></i> shift</th>
                              <th><i class="fas fa-list-ul text-danger"></i> Line</th>
                              <th><i class="feather icon-headphones text-danger"></i> headsetcode</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr>
                              <?php echo "<td>" . $row['sex'] . "</td>";?>
                              <?php echo "<td>" . $row['job'] . "</td>";?>
                              <?php echo "<td>" . $row['shift'] . "</td>";?>
                              <?php echo "<td>" . $row['line'] . "</td>";?>
                              <?php echo "<td>" . $row['headsetcode'] . "</td>";?>
                           </tr>
                        </tbody>
                     </table>
                  </div>
                  <div class="col-md-2">
                     <div class="designer m-t-30">
                        <a href="#!" class="btn btn-primary shadow-2 text-uppercase btn-block">Edit This Profile</a>

                        <?php endwhile; ?>                                  
                     </div>
                  </div>
               </div>
            </div>
            <div class="tab-pane fade" id="Performance" role="tabpanel" aria-labelledby="profile-tab">
               <div class="widget-timeline m-b-25">
               </div>
            </div>
         </div>
      </div>
   </div>
</div>
<?php require_once 'section/Footer.php' ?>

این هم کد مربوط به صفحه search

<?php
require_once "functions.php";


AuthLogin();

$email = $_SESSION['email'];


$PersonnelCode = isset($_GET['PersonnelCode']) ? $_GET[('PersonnelCode')] : 1;
$statment = $pdo->prepare("SELECT * FROM persons WHERE PersonnelCode = :PersonnelCode");
$statment->bindParam("PersonnelCode" , $PersonnelCode , pdo::PARAM_INT);

$statment->execute();


//$PersonnelCode = $statment->fetch(PDO::FETCH_OBJ);
if(! empty($PersonnelCode)) {
    //print_r($PersonnelCode);
    //die;
}
else {
    die("not user");
}

require "views/search.view.php";

آخرین ویرایش: 27-12-2018 ساعت 13:40، توسط sinapars

پاسخ ها

2

سلام

شایان دقیقا درست میگه. ببین اینا هر کدوم یه event دارن مثلا وقتی چک باکس تیک میخوره یا تغییر میکنه. مثلا باید بگی وقتی چک باکس تغییر کرد input مورد نظر رو مقدارشو بگیر و بصورت یه درخواست POST بفرست به فایل PHP بعداون فایل PHP میاد این ایتم هایی که با Ajax فرستاده شده رو میگیره و مقدار رو تو دیتابیس ذخیره میکنه. خیلی راحته!

من یه پروژه کامل و ساده که روش کارو نشون میده برات میذارم نگاه کنن هر جا مشکل داشتی بپرس :) دانلود

چطور بفهمیم CheckBox تغییر کرده؟

با جی کوئری خیلی راحته مثلا:

$("#checkbox").bind('change', function(){        
        val = this.checked; //<---
        alert("changed");
});

اینجا میتونی بفهمی که یه checkbox تغییر کرده و اطلاعات رو بفرستی

مثال

فایل: ajaxjs.html

<!DOCTYPE html>
<html>
<head>
<title>Submit Form Using AJAX PHP and javascript</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<link href="css/style.css" rel="stylesheet">
<script src="script.js"></script>
</head>
<body>
<div id="mainform">
<div class="innerdiv">
<h2>Submit Form Using AJAX,PHP and javascript</h2>
<!-- Required Div Starts Here -->
<form id="form" name="form">
<h3>Fill Your Information!</h3>
<div>
<label>Name :</label>
<input id="name" type="text">
<label>Email :</label>
<input id="email" type="text">
<label>Password :</label>
<input id="password" type="password">
<label>Contact No :</label>
<input id="contact" type="text">
<input id="submit" onclick="myFunction()" type="button" value="Submit">
</div>
</form>
<div id="clear"></div>
</div>
<div id="clear"></div>
</div>
</body>
</html>

فایل: ajaxjs.php

<?php
// Fetching Values From URL
$name2 = $_POST['name1'];
$email2 = $_POST['email1'];
$password2 = $_POST['password1'];
$contact2 = $_POST['contact1'];
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server..
$db = mysql_select_db("mydba", $connection); // Selecting Database
if (isset($_POST['name1'])) {
$query = mysql_query("insert into form_element(name, email, password, contact) values ('$name2', '$email2', '$password2','$contact2')"); //Insert Query
echo "Form Submitted succesfully";
}
mysql_close($connection); // Connection Closed
?>

فایل :script.js

function myFunction() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var contact = document.getElementById("contact").value;
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'name1=' + name + '&email1=' + email + '&password1=' + password + '&contact1=' + contact;
if (name == '' || email == '' || password == '' || contact == '') {
alert("Please Fill All Fields");
} else {
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "ajaxjs.php",
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
return false;
}

نکته: این کد فقط روش کارو نشون میده

داشتی منفی میزدیا :) سوالی داشتی بگو حتما :) – کیوان هستم 11 ماه پیش
ممنون از شما که لطف کردین و این موارد رو قرار دادین الان موضوع اینه من دارم جستجو رو بر اساس یک مقدار خاص انجام میدم و همه این کد هارو تست کردم ولی انجام نشده یعنی مشکلم اینه نمیدونم چچوری تو کدهام از اینا استفاده کنم اگه کدهای منو ویرایش کنید ممنون میشم – sinapars 11 ماه پیش
و مورد بعد اینکه فیلد های من موارد مختلف داره یعنی اینکه یه سری از فیلدها به صورت select list هست و مقدار ثابت داره مثلا طرف وقتی میخواد فیلد shift رو ادیت کنه باید select لیست باز بشه و مواردی که مشخصه رو نشون بده و از بین اونها انتخاب کنه – sinapars 11 ماه پیش
کیوان هستم 11 ماه پیش
سناریو به این شکل هست که یک فرمی وجود داره طرف میاشد اون فرم رو پر میکنه و تو دیتابیس ذخیره میشه و بعد ما میایم بر اساس یه کد مثلا کد پرسنلی اون اطلاعات رو میخونیم و نمایش میدیم مث عکس اول حالا میخوام این اطلاعات که نمایش داده میشه تو همین صفحه بشه ویرایش – sinapars 11 ماه پیش
شمامیخوای در لحظه اپریت انجام بشه؟ میتونی کل اطلاعات جاری فرم رو بصورت کلی بفرستی برای php – کیوان هستم 11 ماه پیش
کرد و مقادیر تو دیتابیس ذخیره بشه حالا با ajax یا هر تکنولوژی دیگه ای کد ها رو هم تو پست اول ویرایش میکنم الان – sinapars 11 ماه پیش
کدهای پست اول رو ویرایش کردم – sinapars 11 ماه پیش
کیوان هستم 11 ماه پیش
ببینید شما مگه نمیخوای این کد ملی کاربر رو تو دیتابیس ویرایش کنی؟ – کیوان هستم 11 ماه پیش
چرا ببین شما یه لطفی بکن اینو اینجارو ببین : https://markcell.github.io/jquery-tabledit/#examples این مورد آخر رو ببین یه چیزی تو این مایه ها میخوام فقط کاری که این کرده میاد همه رکوردهارو برمیگرئونه من میخوام واسش شرط بزارم ولی وفتی where میز Example #6 – sinapars 11 ماه پیش
0

سلام، ببین شما لازمه برای هرکدوم از المان هایی که میخوای قابلیت آپدیت شدن رو داشته باشه یه ایدی یا نام بزاری( در واقع برای مشخص کردن اون المان برای خودت، البته روش دیگه هم داره که گذاشتن data attribute هستش مثلا data-name - اینجا میتونی در موردش بیشتر بخونی)،حالا که باگذاشتن نام برای فیلدت واسه خودت مشخص کردی که این فیلد در دیتابیست مربوط به کدوم جدول و کدوم ستونه،حالا تو کافیه با یه event که روی اون المان (که تو میخوای onClick باشه) تعریف میشه یه تابع پاس بدی که در هنگام onClick یه ریکوست Ajax به یه آدرس رزرو شده از قبل توسط خودت بفرسته و اونجا تغییرات رو به وسیله ی کد های php که نوشتی انجام بدی و بعد یه جواب پس میدی به عنوان جواب که آیا موفقیت آمیز بوده این بروز رسانی یا نه!؟ اینجا یه مثال کوچیک از اون کاری هست که باید انجام بدی، البته به وسیله ی jQuery دیگه لازم نیست از توابع پایه ی Ajax استفاده کنی و خیلی راحت از ajax.$ استفاده میکنی.

<hr>
آخرین ویرایش: 21-02-2019 ساعت 02:41، توسط behzadhasanpor

خوش آمدید

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

لطفا ابتدا لاگین کنید