簡體   English   中英

不使用php和android保存選定的微調器值

[英]Not saving selected spinner value using php and android

在我的項目中,我正在使用一個帶有3個edittexts字段的微調項..在這里,我通過url將這些值發送到php文件,而該php文件會將這些值存儲到數據庫中...如果我僅使用三個edittext字段在我的程序中,它正在存儲到數據庫中。現在我的問題是,所選的Spinner值沒有保存到數據庫中。以前只保存了三個edittext值。使用Spinner之后,什么也沒有保存到數據庫中。我在這里要發送三個編輯文本值和選定的微調器項目作為參數到php文件..請幫助我將選定的微調器項目保存到數據庫中。

這是我的文件。

MainActivity.java

package com.example.server;


import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings({ "deprecation", "unused" })
public class MainActivity extends Activity {

    private Spinner spin;
    private EditText editTextFname;
    private EditText editTextLname;
    private EditText editTextMobile;
    //private EditText editTextPin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        spin = (Spinner)findViewById(R.id.spinner1);
        editTextFname = (EditText) findViewById(R.id.editTextFname);
        editTextLname = (EditText) findViewById(R.id.editTextLname);
        editTextMobile = (EditText) findViewById(R.id.editTextMobile);
        //editTextPin = (EditText) findViewById(R.id.editTextPin);
        ArrayAdapter<CharSequence> spinner = ArrayAdapter.createFromResource(this, R.array.country_arrays, android.R.layout.simple_spinner_item);
        spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(spinner);

    }

    public void insert(View view){

        String salutation = spin.getSelectedItem().toString();//spinner item..not saving..
        String fname = editTextFname.getText().toString();
        String lname = editTextLname.getText().toString();
        String mobile = editTextMobile.getText().toString();


        insertToDatabase(salutation,fname,lname,mobile);


        /*Uri uri = Uri.parse("http://oursite/insert-db.php"); 
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);*/
    }

    private void insertToDatabase(String salutation, String fname, String lname,String mobile){
        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @SuppressWarnings({ "unused", "deprecation" })
            @Override
            protected String doInBackground(String... params) {
                @SuppressWarnings("unused")
                String paramSalutation = params[0];
                String paramFname = params[1];
                String paramLname = params[2];
                String paramMobile = params[3];

                //InputStream is = null;

                String salutation = spin.getSelectedItem().toString();
                String fname = editTextFname.getText().toString();
                String lname = editTextLname.getText().toString();
                String mobile = editTextMobile.getText().toString();

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("salutation", salutation));
                nameValuePairs.add(new BasicNameValuePair("fname", fname));
                nameValuePairs.add(new BasicNameValuePair("lname", lname));
                nameValuePairs.add(new BasicNameValuePair("mobile", mobile));

                try {
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost(
                            "http://oursite/insert-db.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpClient.execute(httpPost);

                    HttpEntity entity = response.getEntity();

                    //is = entity.getContent();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "success";
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);

                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
                TextView textViewResult = (TextView) findViewById(R.id.textViewResult);
                textViewResult.setText("Inserted");
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(salutation,fname,lname,mobile);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

刀片式db.php中

<?php

    define('HOST','mysql.hostinger.in');
    define('USER','u449667615_user');
    define('PASS','1234');
    define('DB','u449667615_db');

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');

  $salutation = $_POST['salutation'];   
  $fname = $_POST['fname'];
  $lname = $_POST['lname'];
  $mobile = $_POST['mobile'];


   $sql = "insert into person (salutation,fname,lname,mobile) values ('$salutation','$fname','$lname','$mobile')";
  if(mysqli_query($con,$sql)){
    echo 'success';
  }
  else{
    echo 'failure';
  }
  mysqli_close($con);
?>

檢查spin.getSelectedItem().toString()返回值。 還嘗試在php中echo值,以移動echo $_POST['salutation']; 到最后一個位置,因為如果失敗,則會使以下回波崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM