|
|
|
Android : ค่าไปไม่ถึง php อ่ะครับ รบกวนช่วยตรวจสอบให้ทีครับ |
|
|
|
|
|
|
|
Code (Android-Java)
package com.royle.project_end;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.net.ssl.HttpsURLConnection;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class DialogSelectAmphurActivity extends Activity //implements OnItemClickListener
{
private final String TAG = "internet";
private ListView listview_province;
ArrayList<HashMap<String, String>> myList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
String strUrl =("http://192.168.1.4/test_projectEnd/amphur.php");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_select_province_dialog);
//Log.d(TAG, sProvince_id);
new AsyncDownload().execute(strUrl);
}
public String getData(String strUrl, ArrayList<NameValuePair> params){
String jString;
HashMap<String, String> map;
String sProvince_id = getIntent().getStringExtra("provinceId");
params.add(new BasicNameValuePair("txtProvinceId",sProvince_id));
try {
jString = getJsonFromUrl(strUrl, params);
//if(jString != null) {
JSONArray jArray = new JSONArray(jString);
Log.d(TAG, jArray +","+ params);
for(int i =0; i< jArray.length(); i++)
{
JSONObject jObj = jArray.getJSONObject(i);
String sAmphur_id = jObj.getString("AMPHUR_ID");
String sAmphur_name = jObj.getString("AMPHUR_NAME");
map = new HashMap<String, String>();
map.put("amphur_id", sAmphur_id);
map.put("amphur_name", sAmphur_name);
myList.add(map);
Log.d(TAG, sAmphur_id + sAmphur_name);
}
//}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
private void showProvince(){
ListView listView = (ListView) findViewById(R.id.listView_province1);
ListAdapter adapter = new SimpleAdapter(this, myList, R.layout.row_layout_select_province,
new String[]{"amphur_id","amphur_name"}, new int[]{R.id.textView_province_id,R.id.textView_province_name});
listView.setAdapter(adapter);
// listView.setOnItemClickListener(this);
}
private String getJsonFromUrl(String strUrl,ArrayList<NameValuePair> params)throws IOException{
URL url = new URL(strUrl);
HttpPost httpPost = new HttpPost(strUrl);
try {
httpPost.setEntity(new UrlEncodedFormEntity(params));
Log.d(TAG, params+"check");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setRequestMethod("GET");
httpCon.setConnectTimeout(6*1000);
int responseCode = httpCon.getResponseCode();
Log.d(TAG, "The response is" + responseCode);
if(responseCode == HttpsURLConnection.HTTP_OK){
Log.d(TAG, "size" + httpCon.getContentLength());
InputStream ins = httpCon.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(ins,"UTF-8"));
String line;
StringBuffer response = new StringBuffer();
while((line = rd.readLine()) != null){
response.append(line);
response.append("\n");
Log.d(TAG, line);
}
rd.close();
return response.toString();
}
} catch (Exception ex) {
Log.d(TAG,"Problem reading"+ ex.getLocalizedMessage());
}
return null;
}
private class AsyncDownload extends AsyncTask<String, Void, String>{
ProgressDialog pd;
@Override
protected void onPreExecute(){
pd = ProgressDialog.show(DialogSelectAmphurActivity.this, "Download", "Downloading....");
}
protected String doInBackground(String... Params){
String data = getData(strUrl, params);
return null;
}
protected void onPostExecute(String result){
pd.dismiss();
showProvince();
}
}
// @Override
// public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// String sProvinceId = myList.get(position).get("amphur_id").toString();
// String sProvinceName = myList.get(position).get("amphur_name").toString();
//
//// Intent intentProvince = new Intent(DialogSelectAmphurActivity.this,NewReGisTerActivity.class);
//// intentProvince.putExtra("provinceId", sProvinceId);
//// intentProvince.putExtra("provinceName", sProvinceName);
//// startActivity(intentProvince);
// }
}
Code (PHP)
<?php
$provinceid = trim($_POST["txtProvinceId"]);
require("libs/connection_to_abc.php");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
$strSQL = "SELECT amphur.* FROM province,amphur
WHERE province.PROVINCE_ID = amphur.PROVINCE_ID
AND province.PROVINCE_ID ='$provinceid' ";
$objQuery = mysql_query($strSQL);
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($link);
echo json_encode($resultArray);
?>
ลองแทนค่าที่รับมาเป็น 3 ค่าที่ดึงมาจาก db ครบหมด แต่พอ ให้มันรับค่าที่ส่งมาจาก android กลับ ไม่ได้อ่ะครับ
Tag : Mobile, MySQL, Android
|
|
|
|
|
|
Date :
2013-06-23 18:23:44 |
By :
littlemonkeyz |
View :
1076 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่วิน ครับ ถ้า ผมเปลี่ยน บรรทัดนี้
$provinceid = trim($_POST["txtProvinceId"]); ใน php เป็น
$provinceid =3; <<< เป็นตัวเลข
ค่าจะออกมาตามที่ต้องการเลยครับ
ผมสงสัยว่าผมส่งค่า txtProvinceId มาไม่ถูกหรือป่าว หรือมันส่งอะไรมาแทน แก้ตั้งแต่เช้ายังไม่ได้เลยครับ โค้ดนี้ก็ประยุกต์จากบทความของ thaicreate อ่ะครับ
รบกวนด้วยนะครับ
|
|
|
|
|
Date :
2013-06-23 21:36:16 |
By :
littlemonkeyz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่วิน ผมรบกวนช่วยดูให้หน่อยได้ไหมครับ คือผมนั่งเช็คแล้วนั่งแก้ แล้ว ก็ยังไปไม่ถูก ว่าค่ามันไม่ไปได้ยังไง ใช้ log ดูค่าparams ก็ ออก
หรือ โค้ดตอน post ไปหา php ผิด มืดแปดด้านเลยครับ T^T
|
|
|
|
|
Date :
2013-06-23 21:49:02 |
By :
littlemonkeyz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมดูก็ช่วยไม่ได้ครับ นอกจากจะแนะนำให้ Debug ดูพวกค่าตัวแปรที่ส่งไปครับ
|
|
|
|
|
Date :
2013-06-24 06:22:47 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|