Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment afficher les erreur date de naissance

DatePickerDialog

    7 août 2018 à 19:34:06

    Bonjour, 

    Je suis débutant en programmation. J'ai élaborer DatePickerDialog pour une demande de date de naissance dans un formulaire simple avec la connexion a la base de données et analyse des erreurs sur php et les autres fichier pour renvoyer les erreur en JAVA SUR ANDROID STUDIO. 

    Mais la seul érreur que je reçoi, peux importe l'erreur que je fait, est celui que j'ai mit dans le inputErrors de la page RegisterActivitydeux qui est " La date d'anniversaire n'est pas valide". 

    Est-ce que vous pouvez m'aider, svp 
    Merci d'avance
    voila mon fichier layout:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center_vertical"
    
        tools:context=".RegisterActivitydeux">
    
    
        <TextView
            android:text="@string/register2_title"
    
            android:textSize="20sp"
            android:layout_marginBottom="40dp"
            android:layout_width="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_height="wrap_content"  />
    
    
    
    
            <Button
    
            android:text="Sélectionner"
    
            android:id="@+id/tvDate"
    
            android:layout_width="fill_parent"
    
            android:layout_height="wrap_content" />
    
    
    
    
        <Button
            android:id="@+id/btn_send"
            android:layout_marginTop="20dp"
            android:layout_gravity="center_horizontal"
            android:text="@string/Inscription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  />
    
        <ProgressBar
            android:id="@+id/pb_loader"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dp"
            android:visibility="invisible"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  />
    
    
    
    
    
    </LinearLayout>
    maintenant mon fichier php
    <?php
    
    //Connexion à la base de données
    
    
    
    
    
    try{
    
    $bdd = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'root', ' ');
    
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    
    } catch(PDOException $e) {
    	die('Erreur : ' . $e->getMessage());
    }
    
    $results["error"] = false;
    $results["message"] = [];
    
    
    
    if(isset($_POST)){
    
    	if(!empty($_POST["date_n"])){
    
    		$date_n = $_POST["date_n"];
    
    		
    
    		//verification de la date de naissance
    
    		if(!preg_match('`^([0-9]{2})/([0-9]{2})/([0-9]{4})$`', $date_n)){
    			$results["error"] = true;
    			$results["message"] ["date_n"]= "Date d'anniversaire invalide";
    
    		}else{
    
    			//verification age
    
    			// age aujourd'hui
    			$Dateoj = new DateTime();
    
    			// date - ans
    			$Datemoins = $Dateoj->sub(new DateInterval('P10Y'));
    
    			//convertion date en format date time
    
    			$date_n = DateTime::createFromFormat('j-m-Y', $_POST["date_n"]);
    
    			if($date_n >= $Datemoins)
    			{
    
    				//a  moins 10 ans
    				$results['error'] = true;
    				$results['message'] = "Votre age nécessite une autorisation parental";
    
    			}
    
    			if($results["error"] === false){
    
    				//insertion
    
    				$sql = $bdd->prepare("INSERT INTO inscriptiondeux(date_n) VALUES(:date_n)");
    
    				$ql->execute([":date_n" => $date_n]);
    
    				if(!sql){
    					$results["error"] = true;
    					$results["message"] = "Erreur lors de l'inscription";
    				}
    
    			}
    				
    		}
    
    
    
    
    	}else{
    		$results["error"] = true;
    		$results["message"] = "Veuillez indiquer votre date d'anniversaire";
    
    	}
    
    	echo json_encode($results);
    
    	
    
    
    
    }
    
    
    
    ?>
    
    maintenant mon fichier registeractivitydeux
    package fr.xxx.xxx;
    
    import android.app.DatePickerDialog;
    import android.content.Intent;
    import android.graphics.Color;
    import android.graphics.drawable.ColorDrawable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.android.volley.RequestQueue;
    
    import java.util.Calendar;
    import java.util.Map;
    
    import fr.sssipe.sssipe.myrequest.MyRequestdeux;
    
    public class RegisterActivitydeux extends AppCompatActivity {
    
        private static final String TAG = "RegisterActivitydeux";
    
        private Button btn_send;
        private Button tvDate;
        private ProgressBar pb_loader;
    
        private TextView mDisplayDate;
        private DatePickerDialog.OnDateSetListener mDateSetListener;
    
        private RequestQueue queue;
        private MyRequestdeux request;
    
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register_activitydeux);
    
    
             Intent intent = getIntent();
             if(intent.hasExtra("REGISTER")){
                 Toast.makeText(this,intent.getStringExtra("REGISTER"), Toast.LENGTH_SHORT).show();
              }
    
              mDisplayDate = (Button) findViewById(R.id.tvDate);
    
             mDisplayDate.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick (View view) {
                     Calendar cal = Calendar.getInstance();
                     int year = cal.get(Calendar.YEAR);
                     int month = cal.get(Calendar.MONTH);
                     int day = cal.get(Calendar.DAY_OF_MONTH);
    
                     DatePickerDialog dialog = new DatePickerDialog(
                             RegisterActivitydeux.this,
                             android.R.style.Theme_Holo_Light_Dialog_MinWidth,
                             mDateSetListener,
                             year,month,day
                     );
                     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                     dialog.show();
    
                 }
             });
    
             mDateSetListener = new DatePickerDialog.OnDateSetListener() {
                 @Override
                 public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                     month = month + 1;
                     Log.d(TAG, "onDateSet: mm/dd/yyyy: " + day + "/" + month + "/" + year);
    
                     String date = day + "/" + month + "/" + year;
                     mDisplayDate.setText(date);
    
                 }
             };
    
             btn_send = (Button) findViewById(R.id.btn_send);
             tvDate = (Button) findViewById(R.id.tvDate);
             pb_loader = (ProgressBar) findViewById(R.id.pb_loader);
    
             queue = VolleySingleton.getInstance(this).getRequestQueue();
             request = new MyRequestdeux(this, queue);
    
    
             btn_send.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     pb_loader.setVisibility(View.VISIBLE);
                     String mDisplayDate = tvDate.getText().toString().trim();
                     request.registerdate(mDisplayDate, new MyRequestdeux.RegisterCallback() {
                         @Override
                         public void onSuccess(String message) {
                             pb_loader.setVisibility(View.GONE);
                             Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                             intent.putExtra("REGISTERDATE", message);
                             startActivity(intent);
    
    
    
                         }
    
                         @Override
                         public void inputErrors(Map<String, String> errors) {
                             pb_loader.setVisibility(View.GONE);
                             Toast.makeText(getApplicationContext(), "La date d'anniversaire n'est pas valide", Toast.LENGTH_SHORT).show();
    
    
                         }
    
                         @Override
                         public void onError(String message) {
                             pb_loader.setVisibility(View.GONE);
                             Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
    
                         }
                     });
                 }
             });
    
        }
    }
    et enfin mon fichier myrequestdeux
    package fr.xxx.xxx.myrequest;
    
    import android.content.Context;
    import android.util.Log;
    import android.widget.Button;
    
    import com.android.volley.AuthFailureError;
    import com.android.volley.NetworkError;
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class MyRequestdeux {
    
        private Context context;
        private RequestQueue queue;
    
        public MyRequestdeux(Context context, RequestQueue queue) {
            this.context = context;
            this.queue = queue;
        }
    
        public void registerdate(final String mDisplayDate, final RegisterCallback callback){
    
            String url = "http://192.xxx.x.xx/phps/registerdate.php";
    
            StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
    
                    Map<String, String> errors = new HashMap<>();
    
                    try {
                        JSONObject json = new JSONObject(response);
    
                        Boolean error = json.getBoolean("error");
    
                        if(!error){
                            //inscription date bien deroulé
                            callback.onSuccess("Continuer");
    
                        }else{
    
                            JSONObject messages = json.getJSONObject("message");
                            if(messages.has("date_n")){
                                errors.put("date_n", messages.getString("date_n"));
                            }
                            callback.inputErrors(errors);
                        }
    
    
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
    
    
                }
    
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
    
                    if (error instanceof NetworkError) {
    
                        callback.onError("Impossible de se connecter");
                    }else if(error instanceof VolleyError){
                        callback.onError("Une erreur s'est produite ..... Réessayer");
                    }
    
    
    
                }
            }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
    
                    Map<String, String> map = new HashMap<>();
                    map.put("date_n", mDisplayDate);
    
    
                    return map;
                }
            };
    
            queue.add(request);
    
        }
    
        public interface RegisterCallback{
            void onSuccess(String message);
            void inputErrors(Map<String, String> errors);
            void onError(String message);
        }
    }
    • Partager sur Facebook
    • Partager sur Twitter

    Comment afficher les erreur date de naissance

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown