2016-08-26 2 views
0

Der Versuch, die jquery Datetimepicker zu verwenden, und ich kann das Add-On zu arbeiten, jedoch, wenn ich die Daten posten, wird es nicht in der Datenbank aktualisiert. Alles andere wird aktualisiert, aber das Datum/die Uhrzeit.Datetime Picker Wert wird nicht aktualisiert in der Datenbank auf Post

Hinweis: Ich weiß, einige davon ist immer noch mysql, ich arbeite daran, die gesamte Website zu aktualisieren.

edit_release_form.php, ich habe

<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
<script type="text/javascript" src="http://vmcnucmed.cvm.umn.edu/includes/js/jquery-ui-timepicker-addon.js"></script> 
<link rel="stylesheet" href="http://vmcnucmed.cvm.umn.edu/includes/jquery-ui-timepicker-addon.css"> 
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> 
<script> 
    $(function() { 
    $('#datetime_released').datetimepicker({ 
    controlType: 'select', 
    oneLine: true, 
    timeFormat: 'hh:mm:ss tt' 
}); 
    }); 
    </script> 

Mein Eingang:

<input tabindex="1" id="datetime_released" type="text" name="datetime_released" > 

post.php

<?php 
// Database Conection Parameters 
define('DB_SERVER', "hostname"); 
define('DB_USER', "username"); 
define('DB_PASSWORD', "password"); 
define('DB_TABLE', "database"); 

// Connection to the Database 
$mysqli = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_TABLE); 
$mysqli->set_charset("utf8"); 
$mysqli->query("SET NAMES 'utf8'"); 

if (mysqli_connect_errno($mysqli)) { 
    trigger_error('Database connection failed: ' . mysqli_connect_error(), E_USER_ERROR); 
} 

$datetime_released = $_POST['datetime_released']; 
$release_probeSN = $_POST['release_probeSN']; 
$release_reading = $_POST['release_reading']; 
$release_reading_loc = $_POST['release_reading_loc']; 
$releasedby = $_POST['releasedby']; 
$id = $_POST['id']; 


// Query 
$sql = " 
UPDATE xxx 
SET datetime_released=?, 
release_probeSN=?, 
release_reading=?, 
release_reading_loc=?, 
releasedby=? 

WHERE patientdoseID=?"; 
if(!($stmt = $mysqli->prepare($sql))) 
{ 
    die("Unable to prepare statement"); 
} 
else 
{ 
    $stmt->bind_param("sissii", $datetime_released, $release_probeSN, $release_reading, $release_reading_loc, $releasedby, $id);  
    if($stmt->execute()) 
    { 
    echo 'Patient Updated Successfully. <br /><br />Database ID: <br>'; 
      header('Location: http://vmcnucmed.cvm.umn.edu', 
      TRUE, // rewrite existing Location header 
      302 // set status code 
); 
    } 
    else 
    { 
    die("Update failed"); 
    } 
} 

mysqli_close($mysqli); 

?> 
+1

Sie müssen mehr Details angeben, da wir wissen, was der Wert von $ datetime_released ist, nachdem Sie ihn abgeschickt haben. Haben Sie versucht, die _POST-Daten auszudrucken, um sicherzustellen, dass sie einen Wert haben? Es kann sein, dass $ _POST leer ist und an der Datenbank nichts falsch ist. –

+1

SQL-Flavors sind in den von ihnen akzeptierten Datums- (Zeit-) Formaten sehr wählerisch. (Kultur kann auch das Ergebnis beeinflussen!). Versuchen Sie beispielsweise, als Text (zu Debugging-Zwecken) zu speichern, um festzustellen, ob Werte übermittelt werden. Wenn dies der Fall ist, schreiben Sie einen Datum/Uhrzeit-Konverter, um sicherzustellen, dass der Wert im akzeptierten Format gespeichert wird. – Pieter21

+0

@AdamWhateverson - Das Datum/Uhrzeit druckt als 08/25/2016 05:19:20 Pieter21 - Ich habe ein neues Feld in der Datenbank, die nur Text war, hinzugefügt den Wert auf dieses Feld ohne Probleme. Jetzt muss ich herausfinden, wie man einen Datum-Uhrzeit-Konverter schreibt ... –

Antwort

1

Dies ist, wie Sie ein empfänger js Datum in MySQL-Format zu konvertieren . Das PHP DateTime-Objekt kann verschiedene Formate akzeptieren und konvertiert sie normalerweise korrekt. Sie könnten dies leicht in eine Funktion verpacken - für die Lesbarkeit.

<?php 
// set your timezone somewhere prior to creating a DateTime object 
// to prevent local vs UTC issues 
date_default_timezone_set('America/Chicago'); 

// mysql date format 
$format = "Y-m-d H:i:s"; 

// an example input 
$input = '08/25/2016 05:19:20 am'; 

// convert input date into a PHP DateTime object 
$my_date = new DateTime($input); 

// create a string in the desired mysql format 
$output = $my_date->format($format); 

echo $output; 

// outputs 2016-08-25 05:19:20 - just the way mysql likes it