Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Edycja rekordów w bazie, Edycja rekordów w bazie z wykorzystaniem formularza używanego do wprow
krystek63
post 22.02.2016, 16:07:35
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.02.2016

Ostrzeżenie: (0%)
-----


Dzień dobry, robiłem ostatnio kurs pewnej z platform z kursami i troszkę się zawiodłem bo przedstawiono tam tylko edycję pól, które mają te same id. Teraz chciałbym wprowadzić edycję dla zamówień (sam dopisałem dodawanie takowych ale nie mogę przeskoczyć edycji), które wprowadzam przez formularz i idealnie byłoby gdyby edycja odbywała się w formularzach identycznych do tych, w których je wprowadzam. Działam "w porozumieniu" z MVC i mam następujące kody:

Kontroler:
CODE
<?php

include('../init.php');
include('models/m_orders.php');

$orders = new Orders();

$SK->Auth->checkAuthorization();

if(isset($_POST['submit'])){

//$SK->Template->setData('ordername', $_POST['ordername']);
$SK->Template->setData('project', $_POST['project']);
$SK->Template->setData('userid', $SK->Auth->getCurrentUserId($_SESSION['username']));
$SK->Template->setData('customerid', $SK->Auth->getCurrentCustomerId());
$SK->Template->setData('creationdate', date('Y-m-d H:i:s'));
$SK->Template->setData('status', $_POST['status']);
$SK->Template->setData('comment', $_POST['comment']);
$SK->Template->setData('hiddencomment', $_POST['hiddencomment']);


/*walidacja danych */
if($_POST['project'] == '' || $_POST['status'] == ''|| $_POST['comment'] == ''){
$SK->Template->setAlert('Wypełnij pola oznaczone gwiazdką.','error');
$SK->Template->load(APP_PATH . 'orders/views/v_addorder.php');
} else{
$changed = $orders->orderAdding($SK->Template->getData('project'), $SK->Template->getData('userid'), $SK->Template->getData('customerid'), $SK->Template->getData('creationdate'), $SK->Template->getData('status'), $SK->Template->getData('comment'), $SK->Template->getData('hiddencomment'));

if($changed == TRUE){
$SK->Template->setAlert('Zamówienie dodane.','success');
$SK->Template->load(APP_PATH . 'orders/views/v_addorder.php');
} else{
$SK->Template->setAlert('Wystąpił błąd.','error');
$SK->Template->load(APP_PATH . 'orders/views/v_addorder.php');
}
}

}else{
$SK->Template->load(APP_PATH . 'orders/views/v_addorder.php');
}



Widok:

CODE
<?php
$this->load(APP_PATH . 'core/templates/t_page_head.php');
?>
<div class="panel-wrapper">
<h1>Ustawienia</h1>
<a href="#" id="sk_cancel" class="btn btn-succes b-close">Zamknij</a>

<div class="sk-panel-left">
<ul class="nav nav-tabs nav-stacked">
<li><a href="<?php SITE_PATH ?>../panel/index.php">Start</a></li>
<li><a href="<?php SITE_PATH ?>../panel/password.php">Zmiana hasła</a></li>
<li><a href="<?php SITE_PATH ?>../panel/index.php">Użytkownicy</a></li>
<li><a href="<?php SITE_PATH ?>../panel/index.php">Opcje</a></li>

</ul>
</div>
<div class="sk-panel-right">
<h2>Dodawanie zamówienia</h2>
<form action="#" method="post" id="edit">
<div>
<?php
$alerts = $this->getAlerts();
if($alerts != ''){
echo '<ul class="alerts">' . $alerts . '</ul>';
}
?>
</div>


<label for="project">Przypisany projekt*</label>
<input type="text" name="project" id="project" value"<?php echo $this->getData('project'); ?>"/>

<label for="status">Status zamówienia*</label>
<input type="text" name="status" id="status" value"<?php echo $this->getData('status'); ?>"/>
<label for="comment">Komentarz widoczny*</label>
<input type="text" name="comment" id="comment" value"<?php echo $this->getData('comment'); ?>"/>
<label for="hiddencomment">Komentarz ukryty</label>
<input type="text" name="hiddencomment" id="hiddencomment" value"<?php echo $this->getData('hiddencomment'); ?>"/>
<br><br>

<input type="submit" name="submit" class="btn btn-primary" value="Dodaj zadanie"/>
</form>
</div>
</div>

<?php
$this->load(APP_PATH . 'core/templates/t_page_foot.php');
?>



Model:

CODE
<?php

class Orders {


function orderAdding($project,$userid,$customerid,$creationdate,$status,$comment,$hiddencomment){

global $SK;
if($stmt = $SK->Database->prepare("SELECT id FROM orders ORDER BY id DESC LIMIT 1")){
$stmt->execute();

$stmt->bind_result($id);
$stmt->fetch();
$stmt->close();
$ordername=$id+1;
}

if($stmt = $SK->Database->prepare("INSERT INTO orders (ordername,project,userid,customerid,creationdate,status,comment,hiddencomment) VALUES ('".$ordername."','".$project."','".$userid."','".$customerid."','".$creationdate."','".$status."','".$comment."','".$hiddencomment."') ")){
$stmt->execute();
$stmt->close();

return TRUE;
} else {
return FALSE;
}




}



Mam też kontroler displayorders.php, który wyświetla wszystkie zamówienia z bazy i nazwę robi klikalną i odsyłającą do adresu editorder.php?$id przechwytując od razu "id" zamówienia, którego nazwę kliknęliśmy. Czytam o tym już piąty dzień i próbuję różnych rozwiązań ale leżę totalnie i nie mogę dojść jak to zrobić. Może już mój umysł 53 letni jest za stary na programowanie...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.05.2024 - 06:52