I'm building a simple forum on which I have a user details page with two text fields, one for the user's biography and another for his interests. When the user clicks on the save icon, a handler on the jquery is suposed to call an ajax call to update the database with the new value of the biography/interests but the ajax call isn't being called at all and I can't figure it out since I don't find any problems with the code and would apreciate if someone could take a look at it.
this is the textarea:
 <textarea rows="4" cols="50" id="biography" readonly><?php if($info['bio'] == "") echo "Não existe informação para mostrar";
            else echo $info['bio']; ?></textarea>
Here is the icon the user clicks on:
<li style="display:inline;" class="infoOps-li"><img class="info-icons"  id="save1" src="assets/icons/save.png" alt=""></li>
this is the jequery with the ajax call:
$("#save1").click(function(){
  var bio = $("#biography").val();
  alert(bio); //this fires up
$.ajax({
  url:"assets/phpScripts/userBioInterest.php", //the page containing php script
  type: "post", //request type,
  dataType: 'json',
  data: {functionName: "bio", info:bio},
  success:function(result){
    alert(result.abc); //this doesn't fire
       }
     });
  $("#biography").prop("readonly","true");
});
I know that the jquery handler is being called correctly because the first alert is executed. The alert of the ajax success function isn't, so I assume that the ajax call isn't being processed.
On the php file I have this:
function updateBio($bio)
{
    $user = $_SESSION['userId'];
    $bd = new database("localhost","root","","ips-connected");
    $connection = $bd->getConnection();
    if($bio == "")
    {
        echo json_encode(array("abc"=>'empty'));
        exit();
    }
     if($stmt = mysqli_prepare($connection,"UPDATE users SET biografia = ? WHERE user_id = ?"))
      {
         mysqli_stmt_bind_param($stmt,'si',$bio,$user);
         mysqli_stmt_execute($stmt);
         mysqli_stmt_close($stmt);
         echo json_encode(array("abc"=>'successfuly updated'));
      }
    $bd->closeConnection();
}
if(isset($_POST['functionName']))
{
$function = $_POST['functionName'];
echo $function;
if(isset($_POST['info']))
$info = $_POST['info'];
if($function == "bio")
{
    updateBio($info);
}
else if($function == "interest")
{
    updateInterests($info);
}
}
Can anyone shed some light on why isn't the ajax call being called? Thank you
EDIT: changed "function" to "functionName" in json data object as suggested.