我无法将单选按钮值传递给函数。正在生成这些值。我在页面上回显了$ 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 . "'");
}
真的不确定为什么在参数存在时函数没有被实例化。请帮忙。
答案 0 :(得分:0)
您的代码中存在错误,以确保请求方法为POST:
<?php
if ($_SERVER["REQUEST_METHOD"] == [$_POST]){
应该是
<?php
if ($_SERVER["REQUEST_METHOD"] == 'POST'){
$_SERVER["REQUEST_METHOD"]
包含带有请求方法的字符串。这可以是例如GET或POST,但它永远不会等于$_POST
。您可以在docs中了解有关$_SERVER
超全球的更多信息。