2009-11-23 32 views
0

我想從表單中選擇發佈的值。選擇名稱是動態的,這意味着名稱值由數據庫記錄定義。

在表單處理腳本中,我想通過$_REQUEST回調該值。

我無法預先知道$_request的值是什麼(例如,$var=$_REQUEST['foo'];),但我知道該值是源自數據庫表的值。 瞭解了這一點,我創建了一個數據庫調用,然後使用foreach來遍歷可能的值。

我想爲每次傳遞創建一個$_request。我有

如..

$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`"); 
$prod_prop_name_array= array(); 
while($data9=mysql_fetch_array($prod_prop_name)) { 
$prod_prop_name_array[]=$data9; 
} 
foreach($prod_prop_name_array as $rowNum => $data9){ 
$option_id=$data9[0]; 
$option_name=$data9[1]; 
echo"$option_name"; 
if($option_name==""){} 
else{ 
$varnval=$_REQUEST[$option_name]; // this is my try at getting the var value 
echo "$varnval"; // this is the output test 
} 
    } 

問題是,在本地服務器上,我得到一個值,但在Web服務器上,我得到沒有。你可以看到我正在使用echo來查看會發生什麼。 $varnval

任何人都可以提出解決此問題的解決方法嗎?

非常感謝

KF

回答

0

有沒有可能是你的服務器上的PHP版本比4.1更舊?那是$ _REQUEST變量被引入的時候。您可以執行<?php echo(phpinfo()); ?>來檢查服務器上的PHP版本。

+0

沒有,服務器實際上是在更高版本(版本)。 我已經用'_post'和'_get'試過了這個結果。 我正在使用超級全局來緩解測試。 – KelsoField 2009-11-23 01:12:38

+0

嗯......不知道爲什麼會發生這種情況,但是你可以遍歷array_keys()數組並找到一個匹配,然後通過索引獲取這個值? – jaywon 2009-11-23 01:21:39

+0

感謝您的建議,儘管我正在創建一個非常複雜的應用程序,但我對數組和方法的所有用法的理解仍然相當基礎。 你能否提供一個這樣的例子,或指向一個資源? 這是必須在早上(格林威治標準時間01:27)這麼恐慌模式踢在:) – KelsoField 2009-11-23 01:28:19

0

試試下面的測試你的情況:

$result = mysql_query("SELECT * FROM `dshop_options_name`") or die("Something went wrong trying to retrieve the names of the options: ".mysql_error()); 

$options = array(); 

while ($each = mysql_fetch_array($result)) 
    $options[] = $each; 

mysql_free_result($result); 

echo "Name of options: ".join(", ",$options)."<br><br>\n"; 

foreach ($options as $option) 
{ 
    if (isset($_REQUEST[$option])) 
     echo "\$_REQUEST[\$option]: ".$_REQUEST[$option]."<br>\n"; 
    elseif (isset($_GET[$option])) 
     echo "\$_GET[\$option]: ".$_GET[$option]."<br>\n"; 
    elseif (isset($_POST[$option])) 
     echo "\$_POST[\$option]: ".$_POST[$option]."<br>\n"; 
} 

echo "<pre>_REQUEST vars:<br>\n".print_r($_REQUEST,true)."</pre>\n"; 
echo "<pre>_GET vars:<br>\n".print_r($_GET,true)."</pre>\n"; 
echo "<pre>_POST vars:<br>\n".print_r($_POST,true)."</pre>\n";