2017-02-08 16 views
-1

Я хочу реализовать функцию поиска в своем приложении.i.e. Я хочу напечатать некоторые данные в соответствии с пользовательским вводом как строку.Как передать значение String из приложения в веб-службу php с помощью андроидального волейбола

вот мой 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

, пожалуйста, просмотрите мой обновленный код, у вас есть какая-либо другая информация? –

+0

Вы должны позволить скрипту php всегда генерировать некоторый текст json. Теперь вы этого не делаете, если одно из «если это не сбывается». – greenapps

ответ

0

Вы делаете JsonArrayRequest. Но ваш php-скрипт предназначен для обычного запроса POST.

+0

yes Я знаю это, но мой ответ json - это массив объектов. Когда я пытаюсь изменить его, требуется запрос строки. И запрос строки не распечатывал мою структуру ответа. –

+0

Что напечатано 'Log.d (TAG, response .toString()); '? Вы должны были сказать раньше. – greenapps

+0

ничего не печатает @greenapps –