gpt4 book ai didi

php - 更新功能在 Android Studio 中不起作用

转载 作者:行者123 更新时间:2023-11-30 22:40:06 25 4
gpt4 key购买 nike

目前我正在使用 Android Studio 做我最后一年的项目。几乎没有什么功能可以完成我的移动应用程序了。

但是,我的应用程序没有执行更新功能。

在我的移动应用程序中继续更新帐户之前,我使用 JSON 提取数据库中的值。然后该值存储在更新表单的 EditText 中。然后我尝试对表格进行一些更改。当我单击提交按钮时,它将继续进行下一个 Activity ,即查看帐户。但是,我所做的一些更改的值仍然与更新帐户之前相同。我已经检查了 Intent 中的编码或传递值,但没有错。为什么会出现这种情况?谁能帮我解决这个问题?

我完全不知道从哪里开始。我仍然是开发 Android 应用程序的基础。

我正在使用 PHP 和 MySQL 来更新数据库中的值。

这是我用 PHP 编写的代码。

    <?php

$response = array();

include 'db_connect.php';
$db = new DB_CONNECT(); if (isset($_POST['idDoc'])) {

$idDoc = $_POST['idDoc']; $namedoc = $_POST['namedoc'];
$ic = $_POST['ic']; $address = $_POST['address']; $notel = $_POST['notel']; $passwrd = $_POST['passwrd'];

$result = mysql_query("UPDATE `DOCTOR` SET namedoc = '$namedoc', ic = '$ic', address = '$address', noTel = '$notel', passwrd = '$passwrd' WHERE idDoc = $idDoc"); // check if row inserted or not
if ($result) {
// successfully updated
$response["success"] = 1;
$response["message"] = "Account successfully updated.";

echo json_encode($response);
} else {

} } else {

$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

echo json_encode($response);
} ?>

这是更新 EditText 中的值的代码。

 class updAcc extends AsyncTask<String, String, JSONObject> {

/**
* Before starting background thread Show Progress Dialog
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(updateAccDoc.this);
pDialog.setMessage("Updating accound..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}


protected JSONObject doInBackground(String... params) {

String namedoc = nameDoc.getText().toString();
String iddoc = idDoc.getText().toString();
String icdoc = icDoc.getText().toString();
String address = addDoc.getText().toString();
String notel = notelDoc.getText().toString();
String pass = password.getText().toString();

List<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("idDoc", iddoc));
param.add(new BasicNameValuePair("namedoc", namedoc));
param.add(new BasicNameValuePair("ic", icdoc));
param.add(new BasicNameValuePair("address", address));
param.add(new BasicNameValuePair("notel", notel));
param.add(new BasicNameValuePair("passwrd", pass));

JSONObject json = jsonParser.makeHttpRequest(urll2,
"POST", param);

try {

int success = json.getInt("success");

if (success == 1) {
// successfully updated
Intent intent = new Intent(updateAccDoc.this, docProfile.class);
String ID6 = getIntent().getExtras().getString("idDoc");
intent.putExtra("idDoc", ID6);
startActivity(intent);
finish();

} else {
// failed to update product
}
} catch (JSONException e) {
e.printStackTrace();
}


return null;
}

/**
* After completing background task Dismiss the progress dialog
* *
*/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product uupdated
pDialog.dismiss();
}

}

跟踪显示“无法将字符串转换为 JSON”

最佳答案

您正在尝试在 doInBackground 方法中处理您的 http 请求的响应,而不是返回响应,这将允许您在 onPostExecute 方法中使用响应。检查http://developer.android.com/reference/android/os/AsyncTask.html正确使用 AsyncTask。

添加 return json; JSONObject json = jsonParser.makeHttpRequest(urll2,"POST", param); 然后从 doInBackground 方法中剪切你的 try block 并粘贴它在 onPostExecute 方法中。

onPostExecute 应该是这样的

protected void onPostExecute(JSONObject json) {
pDialog.dismiss();
try {
int success = json.getInt("success");

if (success == 1) {
// successfully updated
Intent intent = new Intent(updateAccDoc.this, docProfile.class);
String ID6 = getIntent().getExtras().getString("idDoc");
intent.putExtra("idDoc", ID6);
startActivity(intent);
finish();

} else {
// failed to update product
}
} catch (JSONException e) {
e.printStackTrace();
}
}

关于php - 更新功能在 Android Studio 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com