حل شده

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

بازدید56.5kپست ها2آخرین فعالیت5 سال پیش
2
3

سلام وقت همگی بخیر
من همچین جدولی دارم میخوام وقتی روی آیکون زرد کلیک میکنم بتونم اون 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
شایان 5 سال پیش
ممنون از پاسخ شما نمونه کد میخوام و اینکه چجوری فرم رو ویرایش کنم ... – sinapars 5 سال پیش
اگه با جی کوئری مشکلی نداری خیلی راحت میشه این کارو کرد. الان نمونه میذارم – کیوان سمیعی 5 سال پیش

2 پاسخ

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;
}

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

داشتی منفی میزدیا :) سوالی داشتی بگو حتما :) – کیوان سمیعی 5 سال پیش
ممنون از شما که لطف کردین و این موارد رو قرار دادین الان موضوع اینه من دارم جستجو رو بر اساس یک مقدار خاص انجام میدم و همه این کد هارو تست کردم ولی انجام نشده یعنی مشکلم اینه نمیدونم چچوری تو کدهام از اینا استفاده کنم اگه کدهای منو ویرایش کنید ممنون میشم – sinapars 5 سال پیش
و مورد بعد اینکه فیلد های من موارد مختلف داره یعنی اینکه یه سری از فیلدها به صورت select list هست و مقدار ثابت داره مثلا طرف وقتی میخواد فیلد shift رو ادیت کنه باید select لیست باز بشه و مواردی که مشخصه رو نشون بده و از بین اونها انتخاب کنه – sinapars 5 سال پیش
کیوان سمیعی 5 سال پیش
سناریو به این شکل هست که یک فرمی وجود داره طرف میاشد اون فرم رو پر میکنه و تو دیتابیس ذخیره میشه و بعد ما میایم بر اساس یه کد مثلا کد پرسنلی اون اطلاعات رو میخونیم و نمایش میدیم مث عکس اول حالا میخوام این اطلاعات که نمایش داده میشه تو همین صفحه بشه ویرایش – sinapars 5 سال پیش
0

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

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

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

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