موقع covoiturage ب php و mysql الجزء الثالت


فهاد الجزء الثالت من موقع covoiturage ب php و mysql غادي نكملو الملفات لي غادي يمكنوا المستخدم من مشاهدة les trajets لي زاد فالموقع مع إمكانية تعديل وحدف trajet اختارو بواسطة ل id ديالو.

نظرة سريعة بالفيديو

1- الملف mytrips.php

فالمجلد الرئيسي ديالنا غادي نزيدو ملف جديد سميه mytrips.php فيه كاين الكود لي كيمكن من عرض les trajets لي زاد المستخدم لي مكونيكطي فكنسترجعهم من الجدول carsharetrips بإستعمال ل id ديال ل user لي كنجبدو من ال session من بعد كنعرض المعلومات فبلاصتها بالإضافة للروابط لي كيوجهوا المستخدم لل ملفات الخاصة بالتعديل والحدف الكود ديال الملف هو :

                                <?php 
include('includes/header.php');
$sql="SELECT * FROM carsharetrips WHERE user_id='".$_SESSION['user_id']."'";
?>
<div class="container">
<div id="result"></div>
<?php if($result = mysqli_query($con, $sql)):?>
<?php if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_array($result)):?>
    <div class="row" align="center">
        <div class="col-md-8 col-md-offset-2">
           <div align="center"><img src="ajax-loader.gif" id="loader"/></div>
            <div class="trip">
                <div class="row">
                    <a href="viewTrip.php?id=<?php echo $row['trip_id'];?>">
                        <div class="col-md-8">
                            <p>
                                <span class="text-info">Départ : </span><small><?php echo $row["departure"];?></small><br>
                                <span class="text-info">Destination :</span><small><?php echo $row["destination"];?></small><br>
                                <span class="text-info">Le :</span><small><?php echo $row["date"];?> à <?php echo $row["time"];?></small>
                            </p>
                        </div>
                        <div class="col-md-2">
                            <p>
                                <span class="text-danger"><?php echo $row["price"].' '.'DH';?></span><br>
                                <span class="text-success"><?php echo $row["seatsavailable"].' '.'place(s)';?></span><br>
                            </p>
                        </div>
                        <div class="col-md-2">
                            <div class="row" style="padding-right:10px">
                                <div class="col-md-1">
                                    <p><a href="editTrip.php?id=<?php echo $row['trip_id'];?>" class="btn btn-warning btn-xs"><i class="fa fa-pencil"></i></a></p>
                                </div>
                                <div class="col-md-1">
                                    <p><a onclick="deleteTrip(<?php echo $row['trip_id'];?>);" class="btn btn-danger btn-xs"><i class="fa fa-trash"></i></a></p>
                                </div>
                            </div>
                        </div>
                    </a>
                </div>
            </div>  
        </div>
    </div>
<?php 
endwhile;
}
?>
<?php endif;?>  
<?php include('includes/footer.php');?>
                            

2- الملف editTrip.php

فالمجلد الرئيسي ديالنا زيد ملف جديد سميه editTrip.php فيه الفورم لي غادي تمكن المستخدم من تعديل trajet بإستعمال ل id ديالو فكنسترجع ال trajet كنعرضو فالفورم غادي نخدمو ب ajax باش نزيدو المعلومات فقاعدة البيانات فالفورم عطيناها id editTrip ولي به غادي نسترجعوا المعلومات منها الكود ديال الملف هو :

                                <?php include('includes/header.php');?>
<?php
if(!isset($_SESSION['user_id'])){
    header("location:login.php");
}
$id = $_GET['id'];
$sql="SELECT * FROM carsharetrips WHERE user_id='".$_SESSION['user_id']."' AND trip_id = '$id'";
if($result = mysqli_query($con, $sql)){
if(mysqli_num_rows($result) > 0){
$row = mysqli_fetch_array($result);
?>
<div class="container">
<div id="result"></div>
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default">
                <form method="post" id="editTrip">
                    <h3 class="text-info">Modifier un trajet</h3>
                    <hr>
                    <div class="row">
                        <div class="col-md-10 col-md-offset-1">
                            <div id="map">

                            </div>
                        </div>    
                    </div>
                    <hr>
                        <div class="form-group">
                            <label for="from">Départ:</label>
                            <input class="form-control" type="text" name="from" id="from" placeholder="Départ" maxlength="30" value="<?php echo $row["departure"];?>">
                        </div>
                        <div class="form-group">
                            <label for="to" class="">Destination:</label>
                            <input class="form-control" type="text" name="to" id="to" placeholder="Destination" maxlength="30" value="<?php echo $row["destination"];?>">
                        </div>
                        <div class="form-group">
                            <label for="price" class="">Prix par passager:</label>
                            <input class="form-control" type="number" name="price" id="price" placeholder="Prix" maxlength="30" value="<?php echo $row["price"];?>">
                        </div>
                        <div class="form-group">
                            <label for="places" class="">Nombre de place:</label>
                            <input class="form-control" type="number" name="places" id="places" placeholder="Places" maxlength="50" value="<?php echo $row["seatsavailable"];?>">
                        </div>
                        <div align="center"><img src="ajax-loader.gif" id="loader"/></div>
                        <div class="form-group">
                            <label for="dateD" class="">Date de départ:</label>
                            <input class="form-control" type="date" name="dateD" id="dateD" placeholder="Date" maxlength="30" value="<?php echo $row["date"];?>"></div>
                        <div class="form-group">
                            <label for="time" class="">Heure:</label>
                            <input class="form-control" type="time" name="time" id="time" placeholder="Heure" maxlength="30" value="<?php echo $row["time"];?>">
                            <input class="form-control" type="hidden" name="post_id" id="post_id"  value="<?php echo $row["trip_id"];?>">
                        </div>
                        <div class="form-group">
                            <label for="desc">Plus d'infos: </label>
                            <textarea name="desc" class="form-control" rows="5" maxlength="300"><?php echo $row["comments"];?></textarea>
                        </div>
                        <div class="form-group">
                            <input class="btn btn-success" name="signup" type="submit" value="Valider">
                        </div>
                </form>
            </div>              
        </div>
    </div>
</div>
<?php }}?>
<?php include('includes/footer.php');?>
                            

3- الملف editTrip.js

دائما فنفس المجلد كنزيد ملف جديد editTrip.js ففيه نفس الكود لي سبقنا درناه فالملف addTrip.js الفرق فقط كنزيد ل fonction deleteTrip لي كتمكن من حدف trajet باستخدام ل id ديالو ولي كنرسلوه للملف deleteTrip.php الكود ديال الملف editTrip.js هو :    

                                var geocoder = new google.maps.Geocoder();
var fromLong, fromLat, destLong, destLat;
var data;

$('#editTrip').on('submit', function(e) {
    $("#loader").css("display", "block");
    e.preventDefault();
    data = $(this).serializeArray();
    getEditTripDepCoord();
});

function getEditTripDepCoord() {
    geocoder.geocode({
        "address": document.getElementById('from').value
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            fromLong = results[0].geometry.location.lng();
            fromLat = results[0].geometry.location.lat();
            data.push({ name: 'departureLongitude', value: fromLong });
            data.push({ name: 'departureLatitude', value: fromLat });
            getEditTripDestCoord();
        } else {
            getEditTripDestCoord();
        }
    });
}

function getEditTripDestCoord() {
    geocoder.geocode({
            "address": document.getElementById("to").value
        },
        function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                destLong = results[0].geometry.location.lng();
                destLat = results[0].geometry.location.lat();
                data.push({ name: 'destinationLongitude', value: destLong });
                data.push({ name: 'destinationLatitude', value: destLat });
                sendUpdatedTripData();
            } else {
                sendUpdatedTripData();
            }

        }
    )
};

function sendUpdatedTripData() {
    console.log(data);
    $.ajax({
        url: "updateTrip.php",
        data: data,
        type: "POST",
        success: function(response) {
            if (response) {
                $("#loader").css("display", "none");
                $('#result').html(response);
            } else {
                //empty form
                $('#addTrip')[0].reset();
            }
        },
        error: function() {
            $("#result").html("<div class='alert alert-danger'>Erreur réessayer plutard.</div>");

        }
    });
}

function deleteTrip($id) {
    $("#loader").css("display", "block");
    $.ajax({
        url: "deleteTrip.php",
        method: "POST",
        data: { trip_id: $id },
        success: function(data) {
            $("#loader").css("display", "none");
            $("#result").html(data);
            location.reload();
        },
        error: function() {
            $("#result").html("<div class='alert alert-danger'>Erreur réessayer plutard.</div>");
        }

    });
}
                            

4- الملف updateTrip.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف كنسميه updateTrip.php لي فيه الكود لي كيمكن المستخدم من تعديل المعلومات الخاصين ب trajet ولي جاونا كيف سبق وشفنا من الملف editTrip.js فمن بعد مكنسترجع كل حقل بوحدو كنتحقق بلي حتى شي حقل ما خاوي يلا كان خاوي كنزيد رسالة فجدول سميتو errors وكنعرض الرسائل لي فيه منبعد كنزيد المعلومات الجديدة فقاعدة البيانات نجحت العملية كنعرض رسالة نجاح منجحتش كنعرض الرسائل ديال الخطأ الكود ديال الملف هو :


                                    <?php
include('database/connection.php');
session_start();
$errors = "";
$trip_id =  filter_var($_POST["post_id"],FILTER_SANITIZE_STRING);  
$user_id = $_SESSION['user_id'];
$from = filter_var($_POST["from"], FILTER_SANITIZE_STRING);  
$to = filter_var($_POST["to"], FILTER_SANITIZE_STRING);
$price = filter_var($_POST["price"], FILTER_SANITIZE_STRING);
$date = filter_var($_POST["dateD"], FILTER_SANITIZE_EMAIL);
$time = isset($_POST["time"]) ? $_POST['time'] : "";
$desc = filter_var($_POST["desc"], FILTER_SANITIZE_STRING); 
$places = filter_var($_POST["places"], FILTER_SANITIZE_STRING); 
$departLat = isset($_POST["departureLatitude"]) ? $_POST["departureLatitude"] : "";
$departLong =  isset($_POST["departureLongitude"]) ? $_POST["departureLongitude"] : "";
$destLat =  isset($_POST["destinationLatitude"]) ? $_POST["destinationLatitude"] : "";
$destLong =  isset($_POST["destinationLongitude"]) ? $_POST["destinationLongitude"] : "";
if(empty($from)){
    $errors.= '<div class="alert alert-danger">Veuillez entrer le départ</div>';
}
if(empty($to)){
    $errors.= '<div class="alert alert-danger">Veuillez entrer la destination</div>';
}
if(empty($price)){
    $errors.= '<div class="alert alert-danger">Veuillez entrer le prix</div>';
}
if(empty($date)){
    $errors.= '<div class="alert alert-danger">Veuillez entrer la date</div>';
}
if(empty($time)){
    $errors.= '<div class="alert alert-danger">Veuillez entrer l\'heure</div>';
}
$to = mysqli_real_escape_string($con, $to);
$from = mysqli_real_escape_string($con, $from);
$price = mysqli_real_escape_string($con, $price);
//$password = md5($password);
$desc = mysqli_real_escape_string($con, $desc);
if($errors){
    echo '<div class="row"><div class="col-md-4 col-md-offset-4">'.$errors.'</div></div>';
}else{
    $sql = "UPDATE carsharetrips SET `departure`= '$from',`departLong`='$departLong',`departureLat`='$departLat', `destination`='$to',`destLong`='$destLong',`destinationLat`='$destLat', `price`='$price', `seatsavailable`='$places', `date`='$date', `time`='$time'  WHERE `trip_id`='$trip_id' AND user_id ='$user_id' ";   
    $result = mysqli_query($con, $sql);
    if(!$result){
        echo '<div class="row"><div class="col-md-4 col-md-offset-4"><div class="alert alert-danger">'.mysqli_error($con).'</div></div>'; 
    }else{
        echo '<div class="row"><div class="col-md-4 col-md-offset-4"><div class="alert alert-success">Trajet modifié avec succés!</div></div>'; 
    }
}
?>
                                

5- deleteTrip.php

فالمجلد الرئيسي ديال المشروع ديالنا كنزيد ملف كنسميه deleteTrip.php لي فيه الكود لي كيمكن المستخدم من حدف  trajet من قاعدة البيانات بإستعمال ل id ديال trajet لي جانا من fonction deleteTrip.php لي فالملف editTrip.js فكنمسح trajet وكنعرض رسالة نجاح الكود ديال الملف هو:

                                    <?php
//start session and connect
session_start();
include('database/connection.php');
$sql="DELETE FROM carsharetrips WHERE trip_id='".$_POST['trip_id']."' AND user_id = '".$_SESSION['user_id']."'";
$result = mysqli_query($con, $sql);
$message = '<div class="alert alert-success">Trajet supprimé avec succés!</div>';
echo $message; 
?>
                                


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد