اقوم ببرمجة صفحة تعديل البيانات من قبل المستخدم المستخدم من خلال هذا الصفحة قادر على تعديل بياناته + الصورة
الان تغير الصورة شغال ميه ميه ولكن لدي مشكلة بيانات الحقول لا تتغير ولا تعطي اي استجابة الا في حالة وحده اذا كنت عامل اختيار لصورة يعني يجب ان احدث الصورة من اجل تحديث الحقول لم استطيع ايجاد السبب ابد يجب ان اكود قارد على تعديل اوتحديث الحقول بدون تحديث الصورة
ياليت اذا احد لديه فكره وخبره في فلاتر يساعدني
هذا كود الصفحة كامل
import'package:flutter/material.dart';import'package:flutter/services.dart';import'package:http/http.dart' as http;import'dart:async';import'dart:convert';import'MyPreferences.dart';import'dart:io';import'package:image_picker/image_picker.dart';classUpdate extends StatefulWidget{
var getid;Update({Key key,this.getid}): super(key: key);@override_UpdateState createState()=>new_UpdateState();}class_UpdateState extends State<Update>{bool visibilityController =true;MyPreferences _myPreferences =MyPreferences();
var getid;Future<File> file;String status ='';String base64Image;File tmpFile;String errMessage ='Error Uploading Image';
var data;String uploadEndPoint;
var _username="";
var _phone ="";
var _password ="";
var image ="";
var extradata="";// var _genderController = new TextEditingController();
var _phoneController =newTextEditingController();
var _firstnameController =newTextEditingController();
var _lastnameController =newTextEditingController();
var _extradataController =newTextEditingController();
chooseImage(){
setState((){
file =ImagePicker.pickImage(source:ImageSource.gallery);
visibilityController =false;});
setStatus('');}
setStatus(String message){
setState((){
status = message;});}Widget showImage(){returnFutureBuilder<File>(
future: file,
builder:(BuildContext context,AsyncSnapshot<File> snapshot){if(snapshot.connectionState ==ConnectionState.done &&
null != snapshot.data){
tmpFile = snapshot.data;
base64Image = base64Encode(snapshot.data.readAsBytesSync());returnFlexible(
child:Card(
child:SizedBox(
width:400.0,
height:300.0,
child:Image.file(
snapshot.data,
fit:BoxFit.cover,),),),);}elseif(null != snapshot.error){returnconstText('Error Picking Image',
textAlign:TextAlign.center,);}else{returnconstText('',
textAlign:TextAlign.center,);}},);}Future<String>_ShowDialog(String msg) async {return showDialog<String>(
context: context,
barrierDismissible:false,// user must tap button!
builder:(BuildContext context){returnnewAlertDialog(
title:newText('Rewind and remember'),
content:newSingleChildScrollView(
child:newListBody(
children:<Widget>[newText(msg),],),),
actions:<Widget>[newFlatButton(
child:newText('Close'),
onPressed:(){Navigator.of(context).pop();},),],);},);}void _editData() async {//var date = new DateTime.now().toString();StringNameImage=DateTime.now().millisecondsSinceEpoch.toString();
var url ='http://xxxxxxxxxxx/ModifyProfile.php';
var response = await http.post(url, body:{"id": widget.getid.toString(),"name": _firstnameController.text,"phone": _phoneController.text,"password": _lastnameController.text,"NameImage":NameImage,"image": base64Image,"extradata": _extradataController.text,});if(response.statusCode ==200){_ShowDialog("Updated Successfully");}else{_ShowDialog("Updated Failer");}//onEditedAccount();//print(_adresseController.text);}
_fetchData() async {
final url ="http://xxxxxxxxxxx/ConsultProfile.php?id=${widget.getid}";
final response = await http.get(url);if(response.statusCode ==200){
final map= json.decode(response.body);
final videosMap =map["result"];
setState((){this.data = videosMap;
_username = data[0]['name'];
_phone = data[0]['phone'];
_password = data[0]['password'];
image = data[0]['image'];
extradata = data[0]['extradata'];// _gender = data[0]['gender'];
print(data);});}}@overridevoid initState(){
super.initState();
_fetchData();}@overrideWidget build(BuildContext context){returnnewScaffold(
appBar:AppBar(
title:Text("Update Profile"),
backgroundColor:constColor(0xFFf6c626),// status bar color
brightness:Brightness.light,),
body:newCenter(
child: data == null
?newCircularProgressIndicator():newListView(
children:<Widget>[Card(
child:newColumn(
children:<Widget>[Container(
child:Visibility(
visible: visibilityController,
child:Card(
child:newColumn(
children:<Widget>[Image.network(image, width:385,height:300,
fit:BoxFit.cover,),])),),),Card(
child: showImage(),),OutlineButton(
onPressed: chooseImage,
child:Text('Choose Image'),),],),),Card(
child:Column(
children:<Widget>[SizedBox(
height:10.0,),Container(
margin:EdgeInsets.all(4),
child:TextField(
maxLength:10,
decoration:InputDecoration(
border:OutlineInputBorder(),
labelText:'Name',
filled:true,
hintText: _username),
controller: _firstnameController,),),SizedBox(
height:5.0,),Container(
margin:EdgeInsets.all(4),
child:TextField(
maxLength:8,
decoration:InputDecoration(
border:OutlineInputBorder(),
labelText:'Phone number',
filled:true,
hintText: _phone),
controller: _phoneController,),),SizedBox(
height:5.0,),Container(
margin:EdgeInsets.all(4),
child:TextField(
maxLength:8,
decoration:InputDecoration(
border:OutlineInputBorder(),
labelText:'Password',
filled:true,
hintText: _password),
controller: _lastnameController,),),SizedBox(
height:5.0,),SizedBox(
height:5.0,),Container(
margin:EdgeInsets.all(4),
child:TextField(
maxLength:8,
decoration:InputDecoration(
border:OutlineInputBorder(),
labelText:'Password',
filled:true,
hintText: extradata),
controller: _extradataController,),),SizedBox(
height:5.0,),])),SizedBox(
width:double.infinity,
child:newFlatButton(
child:constText('Update'),color:constColor(0xFFf6c626),
padding:EdgeInsets.fromLTRB(100,18,100,18),
onPressed:(){
_editData();},),),SizedBox(
height:10.0,),],),),);}}
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
تحيه طيبه للجميع.
اقوم ببرمجة صفحة تعديل البيانات من قبل المستخدم المستخدم من خلال هذا الصفحة قادر على تعديل بياناته + الصورة
الان تغير الصورة شغال ميه ميه ولكن لدي مشكلة بيانات الحقول لا تتغير ولا تعطي اي استجابة الا في حالة وحده اذا كنت عامل اختيار لصورة يعني يجب ان احدث الصورة من اجل تحديث الحقول لم استطيع ايجاد السبب ابد يجب ان اكود قارد على تعديل اوتحديث الحقول بدون تحديث الصورة
ياليت اذا احد لديه فكره وخبره في فلاتر يساعدني
هذا كود الصفحة كامل
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.