2016-08-20 20 views
-1

为什么我的值不被php读取?

One Color <input type="radio" name="NumberOfColors" id="oneColor" value="oneColor" checked/><br> 
Two Colors <input type="radio" name="NumberOfColors" id="twoColor" value="twoColor"/><br> 
Three Colors <input type="radio" name="NumberOfColors" id="threeColor" value="threeColor"/><br> 
Four Colors <input type="radio" name="NumberOfColors" id="fourColor" value="fourColor"/><br> 
Five Colors <input type="radio" name="NumberOfColors" id="fiveColor" value="fiveColor"/><br><br> 

这是我的php $ _POST变量。

$numberOfColors = isset($_POST["NumberOfColors"]); 

但我的主要问题是,PHP返回一个“1”,而不是从html元素的实际值。因此,如果oneColor被选中,它只会返回一个“1”而不是“oneColor”。我试过用整数的值,但它仍然无法正常工作。有什么我需要在php.ini文件中更改?

我也遇到了一些复选框的问题,但这些在程序中并不重要。

+2

首先,读什么是'isset'的返回值 –

+0

如果我问你是否是这个变量集合,你期待什么作为答案?是,否或42? – RiggsFolly

+1

一些人喜欢黄金(像里约热内卢),而另一些人宁愿[**去绿色**](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -工作)。比赛真的开始了吗? –

回答

2

PHP函数isset()返回一个布尔值:true或false。其中,当打印变为1或0。

尝试这种情况:

// if $_POST["NumberOfColors"] is true give its value else give 0 
$numberOfColors = isset($_POST["NumberOfColors"]) ? $_POST["NumberOfColors"] : 0; 
0

检查它是否是设定的第一,然后分配给变量。 Isset是布尔值。

If (isset($_POST["NumberOfColors"])) { 
    $numberOfColors = $_POST["NumberOfColors"]; 
} 
+2

为什么OP应该使用这段代码“?一个**好的答案**总是会解释做了什么以及为什么这样做, 不仅适用于OP,而且适用于SO的未来访问者,可能会发现此问题并正在阅读您的答案。 _并可能upvoting它,如果它的好_ – RiggsFolly

0

试试这个HTML代码

One Color <input type="radio" name="NumberOfColors" <?php if (isset($NumberOfColors) && $NumberOfColors=="oneColor") echo "checked";?> id="oneColor" value="oneColor"><br> 
Two Colors <input type="radio" name="NumberOfColors" <?php if (isset($NumberOfColors) && $NumberOfColors=="twoColor") echo "checked";?> id="twoColor" value="twoColor"/><br> 
Three Colors <input type="radio" name="NumberOfColors" <?php if (isset($NumberOfColors) && $NumberOfColors=="threeColor") echo "checked";?> id="threeColor" value="threeColor"/><br> 
Four Colors <input type="radio" name="NumberOfColors" <?php if (isset($NumberOfColors) && $NumberOfColors=="fourColor") echo "checked";?> id="fourColor" value="fourColor"/><br> 
Five Colors <input type="radio" name="NumberOfColors" <?php if (isset($NumberOfColors) && $NumberOfColors=="fiveColor") echo "checked";?> id="fiveColor" value="fiveColor"/><br><br> 

PHP

通过添加一些提交按钮,你可以做PHP这样

if(isset($_POST['submit'])) 
{ 
    $NumberOfColors = $_POST['NumberOfColors']; 
} 

这对我的作品。我希望它会帮助你

+0

为什么downvote。?谁能解释一下? –

+0

你没有回答这个问题。他对上一次提交表单时选择的按钮没有兴趣,因此您只是通过添加该代码来混淆问题 – RiggsFolly

+0

他的代码无法工作。我也面临这个问题,并通过此代码解决 –

1

您使用的是单选按钮设置

One Color <input type="radio" name="NumberOfColors" id="oneColor" value="oneColor" checked/><br> 
Two Colors <input type="radio" name="NumberOfColors" id="twoColor" value="twoColor"/><br> 
Three Colors <input type="radio" name="NumberOfColors" id="threeColor" value="threeColor"/><br> 
Four Colors <input type="radio" name="NumberOfColors" id="fourColor" value="fourColor"/><br> 
Five Colors <input type="radio" name="NumberOfColors" id="fiveColor" value="fiveColor"/><br><br> 

单选按钮组具有相同的名称属性name="NumberOfColors"你的情况。

只能从单选按钮组返回一个值,该值将是设置的ONE按钮的value="fiveColor"属性中的值。

所以处理单选按钮设置必须先检查东西时,被选中,然后捕获的价值,所以你知道哪个选项被选中

// was any of my radion buttons selected 
if (isset($_POST["NumberOfColors"]) { 
    // this one was selected 
    $theSelected = $_POST["NumberOfColors"]; 
} 
+0

[*我可以得到一个“arumph”?!*](http://stackoverflow.com/questions/39056329/php-displaying-post-values-as-1-and-not-element-值#评论65462013_39056329) –

+0

*“arumph'ed ...”* –

+0

我认为你已经看到了OP的(坏)记录。怀疑任何地方都可以获得绿色奖章。 –