I can't get this update script to work in IE. Works fine in every other browser. IE tells me that the update was performed. However, it wasn't. I've no more hair left to pull out..grr. BTW I've tried $.ajax
and $.get
too..still no luck. I'm thinking it may have something to do with the live
click handler. Don't know...I've tried everything..(putting headers for no-cache, attaching a random number to the end of my url string)..nothing fricken works...blasted IE.
This is the $('.save').live('click')
function I am using:
$(".save").live("click", function(){
$.post("update.php", { cache : false, saveID : saveIt.value, saveMo : saveMonth, saveYr : saveYear, saveCtg : saveCt, saveThg : saveTh },
function(data){
if(data.success) {
$(textareaThoughts).hide();
$(saveIt).parents(".dirRowOne").find(".cancel").hide();
$(saveIt).parents(".dirRowOne").find(".edit, .del").show();
$(saveIt).hide();
$("#dirConsole").html(data.message);
} else if(data.error) {
}
}, "json");
return false;
});
Here's the update.php
<?php
if($_POST) {
$data['id'] = $db->escape_value($_POST['saveID']);
$data['months'] = trim($db->escape_value($_POST['saveMo']));
$data['years'] = trim($db->escape_value($_POST['saveYr']));
$data['cottages'] = trim($db->escape_value($_POST['saveCtg']));
$data['thoughts'] = trim(htmlentities($db->escape_value($_POST['saveThg'])));
$id = $data['id'];
$m = $data['months'];
$y = $data['years'];
$c = $data['cottages'];
$t = $data['thoughts'];
$query = "UPDATE //tablename SET month = '{$m}', year = '{$y}', cottage = '{$c}', thoughts = '{$t}' WHERE dirID = '{$id}'";
$result = $db->query($query);
if($result) {
$data['success'] = true;
$data['message'] = "Update Successful!";
} else {
$data['error'] = true;
}
echo json_encode($data);
}
?>
This is the JSON response:
{"id":"360","months":"June","years":"1990","cottages":"Cedar","thoughts":"Hello","success":true,"message":"Update Successful!"}
At this point in the process I would set up a server side log and see what IE is actually posting and if it was actually posting anything, not much of a code hint but the code looks good to me.
I recommend using link text with turned on parameter value capturing for post mortem debugging. It is free so give it a try.
For debugging problems like these make sure you get some information about the error back. IE tends to be silent when something goes wrong, but there is a way to get an error back:
At least you know what's wrong and you can start searching more effectively for the right solution.