Temel bir MVC yapısı kullanan küçük bir web sitem var. Veritabanına iki değer ekleyen bir kodum var, ekleme işlemi sorunsuz bir şekilde çalışıyor, ancak yeni verileri görmek istiyorsanız genellikle sayfayı yenilemem veya başka bir sayfaya gidip sonra geri dönmem gerekiyor. Bu işi yapmak için JQuery/Ajax kullanmam gerektiğini, ancak PHP işlevleriyle nasıl yapılacağını gerçekten anlamadığımı anlıyorum.Veri yenileme ve bilgi yenilikleri gösterme
söz konusu kod aşağıda:
PHP Fonksiyonu:
<?php
session_start();
require_once('../Config/config.php');
class Readings
{
public $dbconn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->dbconn = $db;
}
public function enterElecReadings($eUsage)
{
try
{
$estmt = $this->dbconn->prepare("
INSERT INTO elec_readings
(ElecUsage, DateAdded, AccountNumber)
VALUES
(:eUsage, NOW(), :accNum)");
$estmt->bindparam(":eUsage", $eUsage);
$estmt->bindparam(":accNum", $_SESSION['user_session']);
$estmt->execute();
return $estmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function getElecReadings(){
try {
$stmt = $this->dbconn->prepare("SELECT ElecUsage, DateAdded FROM elec_readings WHERE AccountNumber = '" . $_SESSION['user_session'] . "'");
$stmt->execute();
return $stmt;
} catch (Exception $e) {
}
}
}
?>
Sayfa Kullanıcının göreceği:
if(isset($_POST['btn-submitElecUsage']))
{
$eUsage = strip_tags($_POST['txtElecUsage']);
try {
if($newReading->enterElecReadings($eUsage)){
$elecNotif[] = "Reading successfully entered.";
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
<div class="elecUsage">
<form id="elecRead" method="POST">
<h2>Electricity Usage</h2>
<?php
if(isset($elecError))
{
foreach($elecError as $elecError)
{
?>
<div class="alert alert-danger">
<?php echo $elecError; ?>
</div>
<?php
}
}
if(isset($elecNotif))
{
foreach($elecNotif as $elecNotif)
{
?>
<div class="alert alert-danger">
<?php echo $elecNotif; ?>
</div>
<?php
}
}
?>
Please enter your latest electricity meter reading:
<br>
<input type="text" name="txtElecUsage" required/>
<br>
<input type="submit" name="btn-submitElecUsage" value="Submit"/>
</form>
<br>
Your previous Electricity meter readings:
<br>
<div id="previousElecReadings">
<br>
<table class="tableElec" >
<thead>
<tr>
<th>Usage</th>
<th>Date Added</th>
</tr>
</thead>
<?php
foreach ($elec_readings as $elec_reading): ?>
<tbody>
<tr>
<td><?php echo $elec_reading['ElecUsage']; ?></td>
<td><?php echo $elec_reading['DateAdded']; ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
</table>
</div>
</div>
Kontrolör sınıfı:
<?php
require_once('../Model/readingsModel.php');
require_once('../Tool/DrawTool.php');
$newReading = new Readings();
// instantiate drawing tool
$draw = new DrawTool();
// parse (render) appliance view
$renderedView = $draw->render('../View/meterReadings.php', array('elec_readings' => $newReading->getElecReadings()),
array('gas_readings' => $newReading->getGasReadings()));
echo $renderedView;
?>
olarak yukarıda söyledim. Ekleme iyi çalışıyor. Ancak verileri yenilemek yerine anında görünmesini istiyorum.
Herhangi bir fikrin var mı? Saf php ile
Teşekkür
ajax (jQuery veya başka türlü) örneklerine baktınız mı? Orada çok şey var. – Rasclatt
@Rasclatt Ya anlayamıyorum ya da anlayamadım ya da – resontant81
fonksiyonu ile çalışmasını sağlayamadım Ne denediğini yaz, kaçırdığın bir şey olabilirdi. – Rasclatt