Php $ _GET sorunu

9 Cevap php
foreach ($_GET as $field => $label)
{
    $datarray[]=$_GET[$field];

    echo "$_GET[$field]";
    echo "<br>";
}
print_r($datarray);

This is the output I am getting. I see the data is there in datarray but when I echo $_GET[$field]

Ben sadece "Array" olsun

Ama print_r($datarray) tüm verileri yazdırır. Ben bu değerleri çekin nasıl herhangi bir fikir?

OUTPUT

Array ( 
         [0] => Array ( 
                  [0] => Grade1 
                  [1] => ln 
                  [2] => North America 
                  [3] => yuiyyu 
                  [4] => iuy 
                  [5] => uiyui 
                  [6] => yui 
                  [7] => uiy 
                  [8] => 0:0:5 
                  ) 
)

9 Cevap

EDIT: Ben testi tamamlandığında, burada son URL oldu:

http://hofstrateach.org/Roberto/process.php?keys=Grade1&keys=Nathan&keys=North%20America&keys=5&keys=3&keys=no&keys=foo&keys=blat&keys=0%3A0%3A24

Bu muhtemelen bozuk biçimli bir URL. Bir sorguda yinelenen anahtarlar geçirdiğinizde, PHP onları bir dizi yapar. Yukarıdaki URL muhtemelen gibi bir şey olmalı:

http://hofstrateach.org/Roberto/process.php?grade=Grade1&schoolname=Nathan&region=North%20America&answer [] = 5 & answer [] = 3 & answer [] = & no [] = foo answer & [] = blat & zaman = 0% 3A0% cevap 3A24

Bu alanların çoğu için ayrı girişleri oluşturmak ve kullanıcı tarafından sağlanan cevapları bir dizi olarak $ _GET ['cevap'] yapacaktır.

Bottom line: Flash dosyasını düzeltmek.

var_export($_GET) daha kolay alıyorsanız dizinin ne tür görmek için kullanın.

Senaryonuzun çıkışından Ben birden fazla iç içe diziler var olduğunu görebilirsiniz. Bu gibi bir şey görünüyor:

$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))

böylece bu değişkenleri çıkmak gibi bir şey gerekir:

echo $_GET[0][0][0]; // => "Grade1"

Belki GET değişkenleri diziler kendilerini? yani http://site.com?var [] = 1 ve var [] = 2

foreach ($_GET[0] as $field => $label) { $datarray[]=$_GET[$field];

echo "$_GET[$field]";
echo "<br>";

} print_r($datarray);

SONUÇ:

Uyarı:) in / home / public_html / process.php 27. satırda (foreach için verilen Geçersiz değişken

GET değişken bir dizi kendisi gibi görünüyor. Bu girdi hem de çıktı için yararlı olacaktır.

print_r, o zaman bir ağaç basılı (ya da sadece kaynağına bakmak. Bu noktadan itibaren sizin dizi nasıl net bir anlayışa sahip olacak ve olacak olacak önce <pre> etiketleri kullanın İstediğiniz değeri çekmeyi başardı.

Ben daha onun değerleri daha iyi anlaşılması için, $_GET variable and arrays üzerine okumanızı öneririz

Ben flash dosyasındaki kodu değişti ve şimdi ben sadece dizideki son değer almak

burada link

http://hofstrateach.org/Roberto/story_1.html

Bu deneyin:

foreach ($_GET as $field => $label)
{
    $datarray[]=$_GET[$field];

    echo $_GET[$field]; // you don't really need quotes

    echo "With quotes: {$_GET[$field]}"; // but if you want to use them

    echo $field; // this is really the same thing as echo $_GET[$field], so

    if($label == $_GET[$field]) {
         echo "Should always be true<br>";
    }
    echo "<br>";
}
print_r($datarray);

Bu derken, çünkü sadece "Array" baskı var

 echo "$_GET[$field]";

PHP $_GET elemanı $field, bu değişken $_GET yazdırmak isteyen olarak görüyor demek olduğunu bilmiyor olabilir. Yani, onu yazdırmaya çalışır, ve tabii ki bir dizi var, böylece ne olsun. Eğer bir dizi elemanı yankı istiyorum Genellikle, böyle yapardım:

echo "The foo element of get is: {$_GET['foo']}";

Kıvırcık parantez her şey yorumlanması gereken bir değişken olduğunu PHP söyle; aksi takdirde değişken adı $_GET kendisi tarafından üstlenecek.

Bunu gerek yok olsa durumunda, neye ihtiyacınız olduğunu:

foreach ($_GET as $field => $label)
{
    $datarray[] = $label;
}

Bunu yazdırmak istiyorsanız ve sadece bunu

echo $label; // or $_GET[$field], but that's kind of pointless.

Sorun flaş dosyası ile, nasıl oldu onu geri değiştirmek değildi; Eğer $ dataarray değişkeni tüm verileri içerdiği çünkü doğru olduğunu biliyorum. Neden yine bir başka diziye $_GET veri ayıklamak istiyorsun?