Birden GET veya POST değerleri toplama

2 Cevap php

Ben bir URL gibi bir şey geçer bir form var

?choice=selection+A&choice=selection+C

(Ben $ _GET herhangi bir dizi olduğunu unutmayın) gibi bir şey ile bir biçimde onu topluyorum

    	$temp = $_GET["choice"];
	print_r($temp);

Ben sadece son örneği "seçim C" alıyorum. Ne eksik

2 Cevap

Ben 'seçim' çoklu seçim veya onay kutusu grup çeşit varsayarak yaşıyorum? Eğer öyleyse, '[] seçim' için html adını değiştirin. $ _GET ['Seçim'] daha sonra kullanıcının yaptığı seçimlere bir dizi olacak.

Eğer HTML düzenleme niyetinde değilseniz, bu yapmanız aradığınızı yapmak için izin verir; o $_REQUEST superglobali doldurmak ve içeriğini üzerine yazılır.

O Üçlü Kısayol Operatörü kullanır çünkü bu, PHP Sürüm 5.3 varsayar. Bu kaldırılabilir.

$rawget = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : false;
$rawpost = file_get_contents('php://input') ?: false;
$target = $rawget;
$_REQUEST = array();
if ($target !== false) {
    $pairs = explode('&',$rawget);
    foreach($pairs as $pair) {
        $p = strpos($pair,'=');
        if ($p === false && !empty($pair)) {
            $_REQUEST[$pair] = null;
        }
        elseif ($p === 0 || empty($pair)) {
            continue;
        }
        else {
            list($name, $value) = explode('=',$pair,2);
            $name = preg_replace('/\[.*\]/','',urldecode($name));
            $value = urldecode($value);
            if (array_key_exists($name, $_REQUEST)) {
                if (is_array($_REQUEST[$name])) {
                    $_REQUEST[$name][] = $value;
                }
                else {
                    $_REQUEST[$name] = array($_REQUEST[$name], $value);
                }
            }
            else {
                $_REQUEST[$name] = $value;  
            }
        }
    }
}

Haliyle, bu sadece QueryString / GET değişkenleri işleyecek; de yazı işleme, gibi bir şey için 3 satırı değiştirin

$target = ($rawget ?: '') . '&' . ($rawpost ?: '');

Tüm söyledi edilerek, hala HTML değişen tavsiye ederim, ama ne olursa olsun bu nedenle bir seçenek değilse, o zaman bunu yapmak gerekir.