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//