0

PHPを使用してJQueryから文字列を適切に逆シリアル化する方法を知っている人はいますか? JQuery が PHP ファイルに渡す文字列は次のとおりです。

age_gender=1&age_gender=2&age_gender=3&age_gender=4&age_gender=5&age_gender=6

必要な値は、等号の後の数字です (テストに使用した単なるダミー値です)。

編集: 実際、私はすでに parse_str() を使用しています。ここに私のPHPコードがあります:

if(isset($_POST['age_gender'])) { 
    $formSerialized = $_POST['age_gender'];
    $formData = array();
    parse_str($formSerialized, $formData);
    addRow($formData, $link); 
}

function addRow($dataArray, $link) {
    $age_group = $dataArray[0];
    $populations = array(intval($dataArray[1]) + intval($dataArray[2]), intval($dataArray[1]), intval($dataArray[2]));
    $percents = array(doubleval($dataArray[3]) + doubleval($dataArray[4]), doubleval($dataArray[3]), doubleval($dataArray[4]));
    $m_per_100_f = doubleval($dataArray[6]);
    $query = "INSERT INTO national_age_gender_demographics (age_group, both_pop, male_pop, female_pop, both_percent, male_percent, female_percent, males_per_100_females)
    VALUES ('$age_group','$populations[0]','$populations[1]','$populations[2]','$percents[0]','$percents[1]','$percents[2]','$m_per_100_f')";
    $result = mysqli_query($link,$query);

    if(!$result)  die( "Query: " . $query . "\nError:" . mysql_error() );
}

何らかの理由で、$age_group に空白の文字列が表示され、他のすべての値に 0 が表示されます。ここで誰か助けてくれませんか?

4

2 に答える 2

1

parse_str()を参照してください

例:

parse_str('age_gender=1&age_gender=2&age_gender=3&age_gender=4&age_gender=5&age_gender=6', $output); 
print_r($output);

また、リクエストのクエリ文字列を取得したい場合は、php を使用して取得できます。$_SERVER['QUERY_STRING']

于 2013-05-01T17:14:28.460 に答える
0

parse_str() あなたが探している機能です。
これには 2 つのオプションがあります。

  1. parse_str($string)- これにより、文字列内の各キーの変数が実際に作成されます。
  2. parse_str($string,$arr)- これは$arr、文字列からのすべての key=>value ペアを含む連想配列で設定されます。

ドキュメントには、この動作を示す優れたコードがいくつかあります。

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
于 2013-05-01T17:16:07.347 に答える