2017-10-18 10 views
0

私は、フォームフィールドの値の束を持っているクエリ文字列を持っています。例えば、フィールドのうちの1つは、チェックボックスであり、重複したパラメータを作成します?クエリ文字列のチェックボックス値を処理する方法は?

employee_selection_needs =猫& employee_selection_needs =犬& employee_selection_needs =豚

私はにこれらのチェックボックスの値のすべてを配置する必要があります1つの変数をHubSpot APIに提出する必要があります。どうすればそれを達成できますか?私はforeachループで試してみましたが、うまくいかないようです。

$firstname = $_POST["firstname"]; 
$lastname = $_POST["lastname"]; 
$email = $_POST["email"]; 
$organization_name = $_POST["organization_name"]; 
$phone = $_POST["phone"]; 
$best_describes_org = $_POST["best_describes_org"]; 
$organizations_safety = $_POST["organizations_safety"]; 
$confident_interview_process = $_POST["confident_interview_process"]; 
$needs_around_leadership = $_POST["needs_around_leadership"]; 
$used_employee_assessments = $_POST["used_employee_assessments"]; 
$hire_annually = $_POST["hire_annually"]; 

foreach($_POST['employee_selection_needs'] as $needs) { 
    $employee_selection_needs .= $needs; 
} 



//Need to populate these variable with values from the form. 
$str_post = "firstname=" . urlencode($firstname) 
    . "&lastname=" . urlencode($lastname) 
    . "&email=" . urlencode($email) 
    . "&phone=" . urlencode($phonenumber) 
    . "&organization_name=" . urlencode($organization_name) 
    . "&best_describes_org=" . urlencode($best_describes_org) 
    . "&employee_selection_needs=" . urlencode($employee_selection_needs) 
    . "&organizations_safety=" . urlencode($organizations_safety) 
    . "&confident_interview_process=" . urlencode($confident_interview_process) 
    . "&needs_around_leadership=" . urlencode($needs_around_leadership) 
    . "&used_employee_assessments=" . urlencode($used_employee_assessments) 
    . "&hire_annually=" . urlencode($hire_annually) 
    . "&hs_context=" . urlencode($hs_context_json); //Leave this one be 

答えて

0

あなたが名前の末尾に[]を含める必要があり、同じ名前を持つ複数のパラメータを渡すために。だからあなたのURLは次のようになります。

employee_selection_needs [] =猫& employee_selection_needs [] =犬& employee_selection_needs [] =豚

これはあなたのチェックボックスを行うには

name="employee_selection_needs[]" 
を持っている必要がありますか?
+0

うん。これはしかしハブスポットであると私は名前に[]を追加することはできません:( – Dustin

0

Hei man!私はできるだけ容易


方法1あなたにお答えしようとするでしょう?クエリ文字列(お使いの場合)から

使用employee_selection_needs =猫& employee_selection_needs =犬& employee_selection_needs =豚PHPパーサ唯一の最後のキーを検討してください:値(豚)これのためにあなたは反復する配列を持っていません

URLを分割する必要があります。方法2

<?php 

/** CODE */ 

/** Create an Array of Query Strings Values 
    * 
    * OUTPUT EXAMPLE 
    * array( 
    *  0 => 'employee_selection_needs=cat', 
    *  1 => 'employee_selection_needs=dog', 
    *  2 => 'employee_selection_needs=pig', 
    *  3 => 'other_key=other_value', 
    *  ... 
    *) 
    */ 
$queryArray= explode('&', $_SERVER['QUERY_STRING']); 

/** Init a variable for append Query Values */ 
$myOutputString = ""; 

/** Need for separate append values */ 
$myOutputToken = "|"; 

/** Append to $myOutputString the correct Query Value */ 
foreach($queryArray as $queryArrayElement) { 
    /** Create an Array starting from a Query String 
     * 
     * OUTPUT EXAMPLE 
     * array( 
     *  0 => 'employee_selection_needs', 
     *  1 => 'cat', 
     *) 
     */ 
    $tArray= explode('=', $queryArrayElement); 

    /** Filter only "employee_selection_needs" key and append Query Value 
     * to $myOutputString 
     */ 
    if(!empty($tArray[0]) && $tArray[0] == 'employee_selection_needs') { 
     if(!empty($tArray[1])) 
      $myOutputString .= $tArray[1].$myOutputToken; 
    } 
} 

/** Remove last Token */ 
if(!empty($myOutputString)) 
    $myOutputString = substr($myOutputString, 0, -strlen($myOutputToken)); 

print_r($myOutputString); // Expected result cat|dog|pig 

/** OTHER APPEND HERE */ 

?> 

下記参照:HTMLフォーム

からあなたが代わりにチェックボックスの "employee_selection_needs" の "employee_selection_needs []" を使用する必要があります。オンは、あなたが代わりに単一の値値の配列を持っています提出

<form ...> 
    <input type="checkbox" value="dog" name="employee_selection_needs[]" /> 
    <input type="checkbox" value="cat" name="employee_selection_needs[]" /> 
    <input type="checkbox" value="fish" name="employee_selection_needs[]" /> 
    ... 
</form> 

下記参照

<?php 

/** ... CODE ... */ 

/** Now is an array =)) */ 
$used_employee_assessments = $_POST["used_employee_assessments"]; 

/** ... CODE ... */ 

/** Convert to String, if You need */ 
$myOutputString = ""; 
foreach($used_employee_assessments as $assessment) 
    $myOutputString .= $assessment; 

/** OR use implode (string $glue , array $pieces) 
    * $myOutputString = implode(" %MY_TOKEN% ", $used_employee_assessments); 
    */ 

/** OTHER APPEND HERE */ 

?> 
関連する問題