PHP Classes

File: jb_databinding_sample_simple_mysqli.php

Recommend this page to a friend!
  Classes of jumping-blueberry   Jb Data Binding   jb_databinding_sample_simple_mysqli.php   Download  
File: jb_databinding_sample_simple_mysqli.php
Role: Example script
Content type: text/plain
Description: Simple Example with POST and Mysqli
Class: Jb Data Binding
Compose and process forms to edit MySQL records
Author: By
Last change: adjusting script to new version of Procedure - correcting bugs
Date: 11 years ago
Size: 2,628 bytes
 

Contents

Class file image Download
<?php
include("class/autoloader.php");

//Mysqli-Datenbank-Verbindung
include ("connection_data.php"); //in connection_data.php werden $server, $user, $passwort und $db definiert
$mysqli= new MySQLi($server, $user, $passwort, $db);
if(
$mysqli->connect_errno) {
    echo
$mysqli->connect_error;
}

if(isset(
$_GET["edit"])){
   
$id=$_GET["edit"];
}else{
   
$id=0;
}
try{
//Databinding-Procedure anlegen
$databinding=new Jb_Databinding_Procedure();
//Formular anlegen
$form=new Jb_Form_Model_Form();
//Textfeld
$textfeld= new Jb_Form_Model_FormElement();
$textfeld->name="name";
$textfeld->label="Name";
$textfeld->setEditoption("textfeld");

//Verbindung zwischen Databinding und Formular herstellen
$databinding->addPostBinder($textfeld);
//Verbindung zwischen Databinding und Datenbank herstellen
$mysqliBinder = new Jb_Databinding_MysqliBinder($mysqli,"user","name",$id);
$databinding->addReadWriteBinder($textfeld,$mysqliBinder);
//Textfeld zum Formular hinzufügen
$form->addElement($textfeld);

//Submitbutton
$button=new Jb_Form_Model_FormElement();
$button->name="Submit";
$button->value="Absenden";
$button->setEditoption('submit');
$form->addElement($button);


//Diesen Block am Besten komplett so übernehmen

//Leere Felder erlauben, wenn das Formular abgesendet wurde
if(!empty($_POST)){
   
$databinding->allowempty=1;
}
//Databinding durchführen, wenn das Formular abgesendet wurde, oder $_GET["edit"] existiert
if(!empty($_POST) or isset($_GET["edit"])){
    if(
$databinding->bindElements()==true){
       
$id=$mysqliBinder->id;
       
//Erfolgsmeldung
       
$meldung="Eintrag erfolgt! (".$id.") \\n".date("d.m.Y - H:i:s");
       
//Weiterleitungsadresse definieren (weitere $_GET-Parameter werden übernommen)
       
if(!isset($_GET["edit"])){
           
$href=$_SERVER['SCRIPT_NAME']."?edit=".$id;
            if(!empty(
$_SERVER["argv"])){
                for(
$i=0;$i<$_SERVER["argc"];$i++){
                   
$href.="&".$_SERVER["argv"][$i];
                }
            }
        }
    }
}else{
   
$databinding->deleteSession();
}

//output muss hinter Databinding stehen!
$viewForm=new Jb_Form_View_HtmlForm($form);
}catch(
Jb_Exception $e){
    echo
$e->getExceptionDetails();
}

?>
<html>
<head>
<title>Jb_Databinding einfaches Mysqli-Formular</title>
<script type="text/javascript">

function alerter(){
<?php if(!empty($meldung)){?>
alert('<?php echo $meldung?>');

<?php
   
if(isset($href)){?>
window.location.href='<?php echo $href?>';
    <?php
   
}
}
?>
}
window.onload=function(){
alerter();
}
</script>
</head>
<body>
<?php
//Formular anzeigen
//print_r($viewForm);
$viewForm->output();

?>
</body>
</html>