0

以前の投稿で、JQuery 文字列をデシリアライズする方法について質問したところ、parse_str() を使用するように言われました。ただし、後でコードを投稿しませんでした。だから、ここに私のJQuery文字列があります:

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

そして、ここに私の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

代わりに、次のようにデータを渡すようにしてください。

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

名前の後に注意してください。'[]'それらがhtml入力からのものである場合は、html入力に名前を付ける必要がありますage_gender[]。次に、関数 addRow は次のようになります。

    function addRow($dataArray, $link) {
     $dataArray = $dataArray['age_gender'];//Added this line
     $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() );
}
于 2013-05-01T18:11:52.423 に答える
0

Jsonでエンコードを試すことができます。これは良い解決策です

$.stringfy(your_var);

PHPで読み取るには、json_decodeを使用します

于 2013-05-01T18:04:05.450 に答える