将spinner选中的数据从android传递到php

时间:2014-08-04 06:17:57

标签: php android

我需要从包含数百个项目的外部数据库中读取数据。所以我试图将微调器选择值传递给php

android代码在这里:

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.icd);
    states = getResources().getStringArray(R.array.Diseases);
    t1 = (TextView) findViewById(R.id.textView1);

    spinner = (Spinner) findViewById(R.id.country_spinner);

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, states);
    dataAdapter
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {

            ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();

            value = spinner.getSelectedItem().toString();

            // define the parameter
            postParameters.add(new BasicNameValuePair("789", value));
            try {
                CustomHttpClient.executeHttpGet("789");
            } catch (Exception e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

            String response = null;

            // call executeHttpPost method passing necessary parameters
            try {

                response = CustomHttpClient.executeHttpPost(

                urlheart,
                // in case of remote server
                // "http://omega.uta.edu/~kmr2464/jsonscript.php",
                        postParameters);

                // store the result returned by PHP script that runs
                // MySQL query
                String result = response.toString();

                // parse json data
                try {
                    returnString = "";
                    JSONArray jArray = new JSONArray(result);
                    for (int i = 0; i < jArray.length(); i++) {
                        JSONObject json_data = jArray.getJSONObject(i);
                        Log.i("log_tag", "id: " + json_data.getInt("id")
                                + ", name: " + json_data.getString("name")

                        );
                        returnString += "\n" + "Name ="
                                + json_data.getString("icd_disease") + "\n"
                                + " Symptoms = "
                                + json_data.getInt("icd_symptoms") + "\n"
                                + "  "
                                + json_data.getString("icd_treatment");

                    }
                } catch (JSONException e) {
                    Log.e("log_tag", "Error parsing data " + e.toString());
                }

                try {
                    t1.setText(returnString);


                } catch (Exception e) {
                    Log.e("log_tag", "Error in Display!" + e.toString());
                    ;
                }
            } catch (Exception e) {
                Log.e("log_tag",
                        "Error in http connection!!" + e.toString());
            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });
}

PHP:

if(isset($_POST['789'])){
$id = $_POST['789'];
$sql = "SELECT * FROM icd WHERE icd_disease = 'id'";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result))
$output[]=$row;
print(json_encode($output));
mysql_close(); 

我的问题是如何将数据从spinner android传递给php查询,这样查询只会返回正确的项目aginst selected item

1 个答案:

答案 0 :(得分:0)

尝试一下:

if(isset($_POST['789'])){
$id = $_POST['789'];
$sql = "SELECT * FROM icd WHERE icd_disease = '$id'";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result))
$output[]=$row;
print(json_encode($output));
mysql_close();