Salve e scusatemi fin da adesso per la mancanza di terminologia professionale.
Sono un autodidatta con il pi� alto titolo di studio:3� media.

per un progetto che sto realizzando ho necessit� di avere un bottone che al suo click faccia le seguenti azioni:
1) cambia lo stato tramite un id di un elemento nel database, 2) invia una email preimpostata, 3) (a seconda della condizione) mostra un messaggio di errore o di riuscita, 4) aggiorna il bottone stesso cambiandolo fra i due presenti.

il pulsante funziona in tutte le sue varianti meno che l'aggiornamento del cambio button.
Per precisione, se aggiorno la pagina vedo il pulsante corretto.
Ho necessit� che si aggiorni anche al click.
Di seguito il codice che sto usando:

//js script inizio//
function updateSegnalaStatus(id){


$.ajax({


url: "res/customFunctions.php?action=segnal&machine_id="+id,

cache: false,


success: function(response){


response =JSON.parse(response);



if(response.error == 0){


$("#segnal-btn").html(response.btn);


}
else{


$("#show-msg").html("<p class='form-error'>"+response.msg+"</p>")


}


}


});


}


//js script fine//
//html inizio//
<div class="form-group" id="segnal-btn">


<?php if(!$machineInfo['is_reported']){ ?>


<button type="button" class="btn btn-light margin-15" onclick="updateSegnalaStatus(<?php echo $machineID; ?>);"><?php echo $lang['reports']['segnala']; ?></button>


<?php }else{ ?>


<button type="button" class="btn btn-danger margin-15" onclick="updateSegnalaStatus(<?php echo $machineID; ?>);"><?php echo $lang['reports']['segnalatogle']; ?></button>


<?php } ?>





</div>
//html fine//
//php inizio//
function updateSegnalaStatus($machineID){





global $lang;


global $dbObj;


$dbCheckObj = new imPrivateArea();


$loginUserDetail=$dbCheckObj->whoIsLogged();


$uid=$loginUserDetail['uid'];


$result = $dbObj->query("SELECT client_machines.*,users.firstname,users.email


FROM client_machines,users


WHERE client_machines.user_id=users.id AND client_machines.id = $machineID");


if(!isset($result[0])){


return json_encode(array("error"=>1,"msg"=>"Inavlid Machine ID."));


}






$machineData=$result[0];





$is_reported=$machineData['is_reported']?0:1;


$results = $dbObj->query("UPDATE `client_machines` SET `is_reported`= $is_reported WHERE `id` = $machineID");


$getReportData=$dbObj->query("Select * from machine_report where machine_id=$machineID");


$template=getMachineReportTemplate($machineID,$get ReportData);





$mailArr=array(


"Informazion"=>"ATS SERVICE: Segnalazione impianto guasto",





);


$messages=stringReplaceKeyValue($template,$mailArr );





if($results){


$client_uid=$machineData['user_id'];


$dbObj->query("UPDATE clients SET last_access_uid=$uid WHERE user_id=$client_uid");


$btn=$is_reported?'<button type="button" class="btn btn-danger margin-15" onclick="updateSegnalaStatus('.$machineID.');">TOG LI SEGNALA</button>':'<button type="button" class="btn btn-light margin-15" onclick="updateSegnalaStatus('.$machineID.');">SEG NALA</button>';






$mail=sendMail($result[0]['email'],$machineData['firstname'],'ATS ASSISTENZA Segnalazione di guasto a un impianto registrato sulla piattaforma ats-service.it.






',$messages);


return json_encode(array("error"=>0,"msg"=>"Machine reported successfully updated.",'btn'=>$btn));


}


return json_encode(array("error"=>1,"msg"=>"Rapporto macchina non aggiornato."));


}


//php fine//