我正在尝试从表单选择中发布值。选择名称是动态的,这意味着名称值由数据库记录定义。
在表单处理脚本中,我想通过$_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
}
}
我遇到的问题是在本地服务器上,我得到一个值,但在网络服务器上我得不到。您可以看到我正在使用echo
来查看会发生什么。 $varnval
有人可以为此问题提出解决方法吗?
非常感谢
KF
答案 0 :(得分:0)
服务器上的PHP版本是否可能早于4.1?那是引入$ _REQUEST变量的时候。
您可以执行<?php echo(phpinfo()); ?>
检查服务器上的PHP版本。
答案 1 :(得分: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";