Bukalah file helper.dart lalu masukkan kode berikut ini:
Future updateDataMuridApi(Map<String, dynamic> dataMurid) async {
final urlTujuan = Uri.parse(
'https://belajar-pemrograman.my.id/data/updateJson.php',
);
final respon = await http.put(
urlTujuan,
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: jsonEncode(dataMurid),
);
return respon.statusCode;
}
Keterangan:
Buatlah file updateJson.php lalu isi dengan kode berikut ini:
$file = 'dataMurid.json';
$stringJson = file_get_contents('php://input');
$objekJson = json_decode($stringJson);
if($objekJson->nama != ''){
$isiFile = file_get_contents($file);
$dataMurid = json_decode($isiFile, true);
foreach ($dataMurid as $indeks=>$nilai) {
if($nilai['id'] ==$objekJson->id){
$dataMurid[$indeks]['jkel'] =$objekJson->jkel;
}
}
$dataJsonKeString = json_encode($dataMurid, JSON_PRETTY_PRINT);
file_put_contents($file, $dataJsonKeString);
return http_response_code(200);
}else{
return http_response_code(400);
}
Keterangan:
Copy file edit_murid.dart menjadi edit_murid_api.dart
Rubahlah class EditMurid menjadi EditMuridApi seperti berikut ini:
class EditMuridApi extends StatefulWidget {
final Map<String, dynamic> dataMurid;
const EditMuridApi({super.key, required this.dataMurid});
@override
State createState() => EditMuridState();
}
class EditMuridState extends State<EditMuridApi>
Masih dalam file edit_murid_api.dart, pada bagian tombol update dalam metode onPressed masukan kode berikut ini:
@override
void initState() {
super.initState();
if (widget.dataMurid.isNotEmpty) {
if (widget.dataMurid['api'] == 1) {
setState(() {
_indeks = 6;
});
} else {
setState(() {
_indeks = 3;
});
}
}
}
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
m['api'] = 1;
return Dashboard(dataMurid: m);
},
),
);
Tekan menu Run -> Start Debugging atau shortcut tombol F5