2011-10-11 9 views
9

Come nell'esempio seguente mostra come chiamare i campi, la mia domanda è come chiamare una casella di controllo multipla selezionata. per favore dammi un esempioCome elencare l'iscrizione nei gruppi Mailchimp API 1.3

$merge_vars = array('FNAME'=>'Test', 'LNAME'=>'Account', 
       'GROUPINGS'=>array(
        array('name'=>'Your Interests:', 'groups'=>'Bananas,Apples'), 
        array('id'=>22, 'groups'=>'Trains'), 
        ) 
       ); 

Ho una soluzione per questo.

Per ottenere la casella di controllo con più controlli è necessario eseguire un ciclo e impostarlo in matrice, quindi modificare l'array in una stringa.

if(!empty($_POST['listbox'])) 
    { 
     foreach($_POST['listbox'] as $value => $val) 
     { 

      $values[] = $val; 

     } 
     $groups = implode(",", $values); 
    } 

quindi impostare nelle merge_vars

$merge_vars = array('FNAME'=>'Test', 'LNAME'=>'Account', 
      'GROUPINGS'=>array(
       array('name'=>'Your Interests:', 'groups'=> $groups) 
       ) 
      ); 

Speranza che aiuta :)

+0

Non sarebbe più semplice eseguire l'implode su $ _POST ["listbox"]? – Atheist

+0

grazie, mi ha davvero aiutato dato che nella loro documentazione manca un esempio di come costruire questa serie di gruppi –

+0

dovresti spostare la tua risposta dalla sezione Domanda in una risposta e accettarla poiché funziona –

risposta

1

è necessario inserire il separati da virgole, ma è necessario garantire che essi abbiano le virgole fuggiti:

$groups = array(); 
if(!empty($_POST['listbox'])) { 
    $interests = array(); 
    foreach($_POST['listbox'] as $interest) 
    { 
     $interests[] = str_replace(',', '\,', $interest); 
    } 

    $groups = implode(",", $interests); 
} 

$merge_vars = array(
    'FNAME'=>'Test', 
    'LNAME'=>'Account', 
    'GROUPINGS'=> array(
     array(
      'name'=>'Your Interests:', 
      'groups'=> $groups 
     ), 
     array(
      'id'=>22, 
      'groups'=>'Trains' 
     ) 
    ) 
); 

Se si è certi che la stringa di interesse non contiene virgole, è sufficiente effettuare questa operazione:

$groups = implode(',', $_POST['listbox']); 
Problemi correlati