Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP正确地从JQuery反序列化字符串?_Php_Jquery_String_Serialization - Fatal编程技术网

如何使用PHP正确地从JQuery反序列化字符串?

如何使用PHP正确地从JQuery反序列化字符串?,php,jquery,string,serialization,Php,Jquery,String,Serialization,我想知道,有人知道如何使用PHP正确地反序列化JQuery中的字符串吗?JQuery传递到我的PHP文件中的字符串如下: 年龄性别=1,年龄性别=2,年龄性别=3,年龄性别=4,年龄性别=5,年龄性别=6 我需要的值是等号后的数字(它们只是我用于测试的伪值) 编辑:实际上,我已经在使用parse_str()。以下是我的PHP代码: if(isset($_POST['age_gender'])) { $formSerialized = $_POST['age_gender'];

我想知道,有人知道如何使用PHP正确地反序列化JQuery中的字符串吗?JQuery传递到我的PHP文件中的字符串如下:

年龄性别=1,年龄性别=2,年龄性别=3,年龄性别=4,年龄性别=5,年龄性别=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_组的一个空白字符串,所有其他值都是0。有人能帮我吗?

看到了吗

例如:

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使用
$\u服务器['QUERY\u STRING']

是您正在寻找的函数。
您有两个选项可用于此操作:

  • parse_str($string)
    -这实际上会为字符串中的每个键创建一个变量
  • parse_str($string,$arr)
    -这将使用包含字符串中所有键=>值对的关联数组填充
    $arr
  • 提供了一些很好的代码来演示此行为:

    $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
    

    是否尝试过$\u REQUEST['fieldname']?如果这个字符串是jQuery AJAX请求的
    数据
    ,那么服务器会自动将它们解码成一个数组,该数组在
    $\u GET
    $\u POST
    中可用,具体取决于AJAX请求的
    类型
    。在该注释之后,我要做的下一件事是
    parse\u str()
    。。你赢了我:实际上,我已经在使用parse_str()。这是我的php代码:`你应该用你正在使用的代码更新你原来的帖子。