Регистрация массива в PHP

  • Создайте объект класса RequestQueue.
    RequestQueue queue = Volley.newRequestQueue(this);
    
  • Создайте StringRequest с помощью прослушивателя ответов и ошибок.
     StringRequest sr = new StringRequest(Request.Method.POST,"http://api.someservice.com/post/comment", new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            mPostCommentResponse.requestCompleted();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            mPostCommentResponse.requestEndedWithError(error);
        }
    }){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put("user",userAccount.getUsername());
            params.put("pass",userAccount.getPassword());
            params.put("comment", Uri.encode(comment));
            params.put("comment_post_ID",String.valueOf(postId));
            params.put("blogId",String.valueOf(blogId));
    
            return params;
        }
    
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String,String> params = new HashMap<String, String>();
            params.put("Content-Type","application/x-www-form-urlencoded");
            return params;
        }
    };
    
  • Добавьте свой запрос в RequestQueue.
    queue.add(jsObjRequest);
    
  • Создайте интерфейс PostCommentResponseListener, чтобы вы могли его видеть. Это простой делегат для запроса async.
    public interface PostCommentResponseListener {
    public void requestStarted();
    public void requestCompleted();
    public void requestEndedWithError(VolleyError error);
    }
    
  • Включите разрешение INTERNET внутри файла AndroidManifest.xml.
    <uses-permission android:name="android.permission.INTERNET"/>
    
14
задан user45344 9 January 2009 в 19:51
поделиться

2 ответа

PHP только автоматически превратит значение POST в массив, если он закончится в [].

Таким образом, Вы должны иметь name="day[]" вместо просто name="day".

(Обратите внимание, что это работает на любое значение POST, и также с ассоциативными массивами вместо того, чтобы просто автоувеличить - можно сделать name="foo[bar]", и Вы добрались бы $_POST['foo']['bar']...)

31
ответ дан 1 December 2019 в 07:13
поделиться

Причина Вы только получаете один результат, состоит в том, потому что Вы отправляете несколько полей с тем же именем так по умолчанию, последний перезаписывает все предыдущие. Попытайтесь создать массив в своем HTML как это:

Monday
<input type="checkbox" name="day[]" value="Monday" />
<br />
Tuesday
<input type="checkbox" name="day[]" value="Tuesday" />
<br />
Wednesday
<input type="checkbox" name="day[]" value="Wednesday" />

и так далее вниз список...

7
ответ дан 1 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: