Posiadam następujący problem:
Znalazłem w necie bardzo fajny skrypt, który pozwala samemu edytować dane, które są zczytywane z bazy bez buttona w postaci live-edit, jednakże mam problem ponieważ nie obsługuje znacznika Textarea, jedynie INPUT.
Główny PLIK:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
// JQUERY: Plugin "autoSumbit"
(function($) {
$.fn.autoSubmit = function(options) {
return $.each(this, function() {
// VARIABLES: Input-specific
var input = $(this);
var column = input.attr('name');
// VARIABLES: Form-specific
var form = input.parents('form');
var method = form.attr('method');
var action = form.attr('action');
// VARIABLES: Where to update in database
var where_val = form.find('#where').val();
var where_col = form.find('#where').attr('name');
// ONBLUR: Dynamic value send through Ajax
input.bind('blur', function(event) {
// Get latest value
var value = input.val();
// AJAX: Send values
$.ajax({
url: action,
type: method,
data: {
val: value,
col: column,
w_col: where_col,
w_val: where_val
},
cache: false,
timeout: 10000,
success: function(data) {
// Alert if update failed
if (data) {
alert(data);
}
// Load output into a P
else {
$('#notice').text('Updated');
$('#notice').fadeOut().fadeIn();
}
}
});
// Prevent normal submission of form
return false;
})
});
}
})(jQuery);
// JQUERY: Run .autoSubmit() on all INPUT fields within form
$(function(){
$('#ajax-form INPUT').autoSubmit();
});
<?php
// DATABASE: Connection variables
$db_host = "a";
$db_name = "b";
$db_username = "c";
$db_password = "d";
// DATABASE: Try to connect
if (!$db_connect = mysql_connect($db_host, $db_username, $db_password)) die('Unable to connect to MySQL.'); die('Unable to select database');
/*
* DATABASE QUERY
*/
// DATABASE: Get current row
$result = mysql_query("SELECT * FROM wydarzenia WHERE id=1");
?>
<form id="ajax-form" class="autosubmit" method="POST" action="./ajax-update.php">
<fieldset>
<legend>Update user information</legend>
<label>Company:</label>
<input name="title" value="
<?php echo $row['title'] ?>" />
<label>Name:</label>
<input name="text" value="
<?php echo $row['text'] ?>" />
<label>E-mail:</label>
<textarea name="text" value="
<?php echo $row['text'] ?>" /></textarea>
<input id="where" type="hidden" name="id" value="
<?php echo $row['id'] ?>" />
</fieldset>
</form>
<p id="notice"></p>
</body>
</html>
PLIK z UPDATEM:
<?php
/*
* DATABASE CONNECTION
*/
// DATABASE: Connection variables
$db_host = "a";
$db_name = "b";
$db_username = "c";
$db_password = "d";
// DATABASE: Try to connect
if (!$db_connect = mysql_connect($db_host, $db_username, $db_password)) die('Unable to connect to MySQL.'); die('Unable to select database');
// DATABASE: Clean data before use
function clean($value)
{
}
/*
* FORM PARSING
*/
// FORM: Variables were posted
{
// Prepare form variables for database
foreach($_POST as $column => $value)
${$column} = clean($value);
// Perform MySQL UPDATE
$result = mysql_query("UPDATE wydarzenia SET ".$col."='".$val."' WHERE ".$w_col."='".$w_val."'")
or
die ('Unable to update row.');}
?>

Zmian trzeba dokonać w skrypcie jQuery w pliku głównym, ale nie jestem na tyle zaawansowany ażeby tego dokonać :/ Zapewne to jest 5 min. roboty, dlatego czekam na wasze podpowiedzi
Ten post edytował martinii007 5.02.2014, 22:25:52