2009-11-23 88 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";