2017-02-08 3 views
-1

私のapp.i.eに検索機能を実装したいと思います。文字列としてのユーザー入力に応じて、特定のデータに印刷したい。ここandroid volleyを使用してアプリケーションからphp Webサービスに文字列値を渡す方法

は私のJavaコードである:ここで

JsonArrayRequest movieReq = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 
         hidePDialog(); 

         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 

          try { 
           JSONObject obj = response.getJSONObject(i); 
           Movie movie = new Movie(); 
           movie.setTitle(obj.optString("fullname")); 
           movie.setThumbnailUrl(obj.optString("image")); 
           movie.setRating(obj.optString("location")); 

           movie.setYear(obj.getInt("id")); 

         movie.setGenre(genre); 

           // adding movie to movies array 
           movieList.add(movie); 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

       }); 
         } 


         adapter.reloadData(); 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       hidePDialog(); 

      } 
     }) 

     { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("fullname", "test");// this is variable and hardcoded passed value for testing 

       return params; 
      } 
     } 
      ; 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(movieReq); 

は私のPHPコードです:

<?php 
    header("content-type:application/json"); 
    require_once("dbConnect.php"); 

    if($_SERVER['REQUEST_METHOD']=='POST'){ 
     if(isset($_POST['fullname'])){ 
    $fullname = $_POST['fullname']; 


    $sql = "SELECT id ,image,fullname,location from uploadfinding WHERE fullname like '%$fullname%'"; 

    $res = mysqli_query($conn,$sql); 


    $result = array(); 

    while($row = mysqli_fetch_array($res)){ 
      array_push($result, array(

       "id"=>$row["id"], 
       "fullname"=>$row["fullname"], 
       "image"=>$row['image'], 
       "location"=>$row["location"])); 

       //echo " over"; 

     } 


    $fp = fopen('results.json', 'w'); 
    fwrite($fp, json_encode($result)); 
    fclose($fp);    
    echo json_encode($result); 

    mysqli_close($conn); 
     } 
    } 
    ?> 

私はボレーライブラリを使用していると私は、変数にハードコードされた値を渡すためにしようとしていますそして、このようなPHPコードにそれを使用しようとしている:

params.put("fullname", "test");//here fullname is variable and test is hardcoded value 

が、変数にそのハードコーディングされた渡された値は、PHPで取得していません変数(同じ名前)を使用しているため、PHP変数に保存されていない入力があり、検索が機能しません。だからこの問題を解決するには?

+0

'変数にハードコードされた値を渡す '。あなたはあなたが話している変数について話す必要はないと思いますか? 'php変数には入りませんでした '。どの変数を教えてはいけないと思いますか? – greenapps

+0

私の更新されたコードを見て、Uに他の情報が必要ですか? –

+0

PHPスクリプトに常にいくつかのjsonテキストを表示させる必要があります。今のところ、「もしかしたら」が成立しなければ、あなたはそれをしていません。 – greenapps

答えて

0

あなたはJsonArrayRequestを実行しています。しかし、あなたのPHPスクリプトは、通常のPOSTリクエスト用です。

+0

はい私はそれを知っていますが、私のjsonレスポンスはオブジェクトの配列です。私はそれを変更しようとしています。文字列リクエストと文字列リクエストがレスポンス構造体を表示しませんでした –

+0

'Log.d(TAG、response .toString()); '?あなたは前に伝え​​たはずです。 – greenapps

+0

これは何も表示されない@greenapps –

関連する問題