单选按钮值未传递给php函数

时间:2014-03-31 16:38:54

标签: php mysql

我无法将单选按钮值传递给函数。正在生成这些值。我在页面上回显了$ company_id和$ _POST ['package']并且都正确回显。下面,我提供了我试图实例化的tecnoDB函数select_service的代码以及单选按钮所在页面的实际代码。我没有在代码中使用任何JavaScript。

这是单选按钮所在的页面:

 <?php
    session_start();
if (!array_key_exists("user", $_SESSION)) {
header('Location: index.php');
exit;
}
require_once("Includes/tecnoDB.php");
$company_id = tecnoDB::getInstance()->get_company_id_by_name($_SESSION['user']);


if ($_SERVER["REQUEST_METHOD"] == [$_POST]){
  if (array_key_exists("contratar", $_POST)){
    require_once("Includes/tecnoDB.php");
    tecnoDB::getInstance()->select_service($company_id, $_POST['package']);
    header("Location: companyControlPanel.php");
}
}
?>

    <form name="selection" action="" method="POST">
        <ul>
            <li>Recruiter Lite <input type="radio" name="package" value="1"  /></li>
            <li>Recruiter Plus <input type="radio" name="package" value="2"  /></li>
            <li>Premium <input type="radio" name="package" value="3"  /></li>
        </ul>
        <input type="submit" name="contratar" value="Contratar Servicio" />
    </form>

HERE是我试图实例化的select_service函数

public function select_service($company_id, $package){
$company_id = $this->real_escape_string($company_id);
$package = $this->real_escape_string($package);
$this->query("UPDATE company SET service = '" . $package . "' WHERE id = '" . $company_id . "'");
}

真的不确定为什么在参数存在时函数没有被实例化。请帮忙。

1 个答案:

答案 0 :(得分:0)

您的代码中存在错误,以确保请求方法为POST:

 <?php
 if ($_SERVER["REQUEST_METHOD"] == [$_POST]){

应该是

<?php
if ($_SERVER["REQUEST_METHOD"] == 'POST'){

$_SERVER["REQUEST_METHOD"]包含带有请求方法的字符串。这可以是例如GET或POST,但它永远不会等于$_POST。您可以在docs中了解有关$_SERVER超全球的更多信息。