surveen Posted December 31, 2014 Share Posted December 31, 2014 Hello All, New Year Greetings!! I have integrated a script for TODO list in my website. Its working fine, but adding New task will be appear only after refreshing the page, whereas delete and save are happening as and when i click on them. I dont know where can i make it right. Here is my code Display <div class="w-box-content todo-list"> <ul class="todoList"> <?php require "todo.class.php"; $query = mysql_query("SELECT * FROM `tz_todo` ORDER BY `position` ASC"); $todos = array(); while($row = mysql_fetch_assoc($query)){ $todos[] = new ToDo($row); } foreach($todos as $item){ echo $item; } ?> </ul> <a id="addButton" class="green-button" href="#">Add a ToDo</a> <div id="dialog-confirm" title="Delete TODO Item?">Are you sure you want to delete this TODO item?</div> I am including <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/themes/humanity/jquery-ui.css" type="text/css" media="all" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script type="text/javascript" src="script.js"></script> and in ajax.php require "connect.php"; require "todo.class.php"; $id = (int)$_GET['id']; try{ switch($_GET['action']) { case 'delete': ToDo::delete($id); break; case 'rearrange': ToDo::rearrange($_GET['positions']); break; case 'edit': ToDo::edit($id,$_GET['text']); break; case 'new': ToDo::createNew($_GET['text']); break; } } catch(Exception $e){ // echo $e->getMessage(); die("0"); } echo "1"; Link to comment https://forums.phpfreaks.com/topic/293567-added-data-in-todo-list-is-not-visible-without-refreshing/ Share on other sites More sharing options...
drisate Posted December 31, 2014 Share Posted December 31, 2014 You can do that from your script.js page. Inside the sucess part of the script, you can add something like: $("#todoList").load( "index.php #todoList"); In order for this to work, add an id attribute to the <ul class="todoList"> like this <ul class="todoList" id="todoList">Then in the code i provided insert the URL of your totdo page at the place of index.php This will fetch the page, retreive the #todoList content and replace it and all that with out refreshing the users page ... only the content will change. Link to comment https://forums.phpfreaks.com/topic/293567-added-data-in-todo-list-is-not-visible-without-refreshing/#findComment-1501346 Share on other sites More sharing options...
surveen Posted December 31, 2014 Author Share Posted December 31, 2014 Hi, I have made changes like this in my script.js $(document).ready(function(){ /* The following code is executed once the DOM is loaded */ $(".todoList").sortable({ axis : 'y', // Only vertical movements allowed containment : 'window', // Constrained by the window update : function(){ // The function is called after the todos are rearranged // The toArray method returns an array with the ids of the todos var arr = $(".todoList").sortable('toArray'); // Striping the todo- prefix of the ids: arr = $.map(arr,function(val,key){ return val.replace('todo-',''); }); // Saving with AJAX $.get('ajax.php',{action:'rearrange',positions:arr}); }, /* Opera fix: */ stop: function(e,ui) { ui.item.css({'top':'0','left':'0'}); } }); // A global variable, holding a jQuery object // containing the current todo item: var currentTODO; // Configuring the delete confirmation dialog $("#dialog-confirm").dialog({ resizable: false, height:130, modal: true, autoOpen:false, buttons: { 'Delete item': function() { $.get("ajax.php",{"action":"delete","id":currentTODO.data('id')},function(msg){ currentTODO.fadeOut('fast'); }) $(this).dialog('close'); }, Cancel: function() { $(this).dialog('close'); } } }); // When a double click occurs, just simulate a click on the edit button: $('.todo').live('dblclick',function(){ $(this).find('a.edit').click(); }); // If any link in the todo is clicked, assign // the todo item to the currentTODO variable for later use. $('.todo a').live('click',function(e){ currentTODO = $(this).closest('.todo'); currentTODO.data('id',currentTODO.attr('id').replace('todo-','')); e.preventDefault(); }); // Listening for a click on a delete button: $('.todo a.delete').live('click',function(){ $("#dialog-confirm").dialog('open'); }); // Listening for a click on a edit button $('.todo a.edit').live('click',function(){ var container = currentTODO.find('.text'); if(!currentTODO.data('origText')) { // Saving the current value of the ToDo so we can // restore it later if the user discards the changes: currentTODO.data('origText',container.text()); } else { // This will block the edit button if the edit box is already open: return false; } $('<input type="text">').val(container.text()).appendTo(container.empty()); // Appending the save and cancel links: container.append( '<div class="editTodo">'+ '<a class="saveChanges" href="#">Save</a> or <a class="discardChanges" href="#">Cancel</a>'+ '</div>' ); }); // The cancel edit link: $('.todo a.discardChanges').live('click',function(){ currentTODO.find('.text') .text(currentTODO.data('origText')) .end() .removeData('origText'); }); // The save changes link: $('.todo a.saveChanges').live('click',function(){ var text = currentTODO.find("input[type=text]").val(); $.get("ajax.php",{'action':'edit','id':currentTODO.data('id'),'text':text}); currentTODO.removeData('origText') .find(".text") .text(text); }); // The Add New ToDo button: var timestamp=0; $('#addButton').click(function(e){ // Only one todo per 5 seconds is allowed: if((new Date()).getTime() - timestamp<3000) return false; $.get("ajax.php",{'action':'new','text':'New Todo Item. Doubleclick to Edit.','rand':Math.random()},function(msg){ // Appending the new todo and fading it into view: $(msg).hide().appendTo('#todoList').fadeIn(); $("#todoList").load( "index.php #todoList"); }); // Updating the timestamp: timestamp = (new Date()).getTime(); e.preventDefault(); }); }); // Closing $(document).ready() and in index.php <ul class="todoList" id="todoList"> But when i click on add, everything goes off , after refreshing it will appear again. Link to comment https://forums.phpfreaks.com/topic/293567-added-data-in-todo-list-is-not-visible-without-refreshing/#findComment-1501350 Share on other sites More sharing options...
surveen Posted December 31, 2014 Author Share Posted December 31, 2014 Sorry ... i got it resolved! thanks you Link to comment https://forums.phpfreaks.com/topic/293567-added-data-in-todo-list-is-not-visible-without-refreshing/#findComment-1501352 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.