[英]Flutter: insert textfield data into the MYSQL database using POST method in php
我嘗試使用 PHP post 方法將我的文本字段數據插入到 MYSQL 數據庫中。 這是我的保存數據代碼。
POST 方法顯示此未定義索引:visitor_name in
數據庫連接成功 GET data works 在 List View 中正確獲取數據 getdata 沒有問題 function 但是 save data Funtion Not Working
class Homepage extends StatefulWidget {
const Homepage({Key? key}) : super(key: key);
@override
State<Homepage> createState() => _HomepageState();
}
class _HomepageState extends State<Homepage> {
@override
Widget build(BuildContext context) {
TextEditingController txtVname = TextEditingController();
TextEditingController txtVnumber = TextEditingController();
TextEditingController txtvemail = TextEditingController();
TextEditingController txtvReason = TextEditingController();
TextEditingController txtename = TextEditingController();
TextEditingController txtRole = TextEditingController();
TextEditingController txtemail = TextEditingController();
bool _valvname = false;
bool _valvnumber = false;
bool _valvemail = false;
bool _valvReason = false;
bool _valename = false;
bool _valRole = false;
bool _valemail = false;
bool visible = false;
Future insertData() async {
setState(() {
visible = true;
});
String visitor_name = txtVname.text;
String visitor_num = txtVnumber.text;
String visitor_email = txtemail.text;
String visitor_Reason = txtvReason.text;
String emp_name = txtename.text;
String emp_Role = txtRole.text;
String emp_email = txtemail.text;
var Data = {
'visitor_name': visitor_name,
'visitor_num': visitor_num,
'visitor_email': visitor_email,
'visitor_Reason': visitor_Reason,
'emp_name': emp_name,
'emp_Role': emp_Role,
'emp_email': emp_email,
};
var url = "https://astatic-scab.000webhostapp.com/vsave.php";
var res = await http.post(Uri.parse(url), body: jsonEncode(Data));
var message = jsonDecode(res.body);
if (message == "true") {
print("Successful " + message);
} else {
print("Error: " + message);
}
}
和我的 PHP 代碼
<?php
include "config.php";
$visitor_name=$_POST['visitor_name'];
$visitor_num=$_POST['visitor_num'];
$visitor_email=$_POST['visitor_email'];
$visitor_Reason=$_POST['visitor_Reason'];
$emp_name=$_POST['emp_name'];
$emp_Role=$_POST['emp_Role'];
$emp_email=$_POST['emp_email'];
if($visitor_name!="" && $visitor_num!="" && $visitor_email!="" && $visitor_Reason!="" && $emp_name!="" && $emp_Role!="" && $emp_email!="" ){
$sql="insert into Enquiry (visitor_name,visitor_num,visitor_email,visitor_Reason,emp_name,emp_Role,emp_email) values('$visitor_name','$visitor_num','$visitor_email','$visitor_Reason','$emp_name','$emp_Role',$emp_email');";
if ($con->query($sql)){
echo "true";
}else{
echo "false";
}
}
?>
這是我的一些文本字段代碼,我為所有文本輸入都做了這個
children: [
TextField(
controller: txtVname,
decoration: InputDecoration(
errorText: _valvname
? 'Please fill the detail'
: null,
labelText: "Visitors Name",
labelStyle: const TextStyle(
color: Color(0xff6D6C6CFF))),
),
TextField(
controller: txtVnumber,
decoration: InputDecoration(
labelText: "Visitors Mobile Number",
labelStyle: const TextStyle(
color: const Color(0xff6D6C6CFF)),
errorText:
_valvnumber ? 'Can\'t be Empty' : null,
),
),
錯誤消息是當我單擊提交按鈕時,錯誤消息顯示我不知道在哪里尋找錯誤。
E/flutter (13778): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (13778): <br />
E/flutter (13778): ^
E/flutter (13778):
E/flutter (13778): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1405:5)
E/flutter (13778): #1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1272:9)
E/flutter (13778): #2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:937:22)
E/flutter (13778): #3 _parseJson (dart:convert-patch/convert_patch.dart:40:10)
E/flutter (13778): #4 JsonDecoder.convert (dart:convert/json.dart:612:36)
E/flutter (13778): #5 JsonCodec.decode (dart:convert/json.dart:216:41)
E/flutter (13778): #6 jsonDecode (dart:convert/json.dart:155:10)
E/flutter (13778): #7 _HomepageState.build.insertData (package:vms_1/Home_Page.dart:67:21)
E/flutter (13778): <asynchronous suspension>
E/flutter (13778):
這就是 PHP 顯示的內容
Notice: Undefined index: visitor_name in /storage/ssd4/645/18700645/public_html/vsave.php on line 3
Notice: Undefined index: visitor_num in /storage/ssd4/645/18700645/public_html/vsave.php on line 4
Notice: Undefined index: visitor_email in /storage/ssd4/645/18700645/public_html/vsave.php on line 5
Notice: Undefined index: visitor_Reason in /storage/ssd4/645/18700645/public_html/vsave.php on line 6
Notice: Undefined index: emp_name in /storage/ssd4/645/18700645/public_html/vsave.php on line 7
Notice: Undefined index: emp_Role in /storage/ssd4/645/18700645/public_html/vsave.php on line 8
Notice: Undefined index: emp_email in /storage/ssd4/645/18700645/public_html/vsave.php on line 9
這也是
W/IInputConnectionWrapper( 8071): getTextBeforeCursor on inactive InputConnection
I/AssistStructure( 8071): Flattened final assist data: 388 bytes, containing 1 windows, 3 views
W/IInputConnectionWrapper( 8071): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper( 8071): getSelectedText on inactive InputConnection
讓我們首先解決您的 API 問題。請嘗試格式化您的insertData()
function 類似於:
Future insertData() async {
setState(() {
visible = true;
});
var url = "https://astatic-scab.000webhostapp.com/vsave.php";
var response = await http.post(
Uri.parse(url),
body: {
"visitor_name": txtVname.text.toString(),
"visitor_num": txtVnumber.text.toString(),
"visitor_email": txtemail.text.toString(),
"visitor_Reason": txtvReason.text.toString(),
"emp_name": txtename.text.toString(),
"emp_Role": txtRole.text.toString(),
"emp_email": txtemail.text.toString(),
},
);
var message = jsonDecode(res.body);
if (message == "true") {
print("Successful " + message);
} else {
print("Error: " + message);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.