尝试将下拉选择转换为布尔值。我已经在这里搜索并尝试了多种方法。什么都没用。有人可以协助您进行最佳实践吗?这是到目前为止我尝试过的两个示例。
更新:为响应正确答案而做出的更正,如下:“您在选择中也有两个名称。”一旦我消除了第二个名字,一切都会正常运行。
HTML:
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="paypalvalue">
<table>
<tr><td><input type="hidden" name="on0" value="ODS Categories">ODS
Categories</td></tr><tr><td>
<select required name="os0" name ="catSelect" id="catSelect" onchange=""
class="form-control"><option value="">Select One:</option>
<option value="M" name="mcategory" id="mcategory" onclick="" />M :
</option>
<option value="P" name="pcategory" id="pcategory" onclick="" />P :
</option>
<option value="E" name="ecategory" id="ecategory" onclick="" />E :
</option>
<option value="C" name="ccategory" id="ccategory" onclick="" />C :
</option>
<option value="O " name="ocategory" id="ocategory" onclick="" />O :
</option>
</select> </td></tr>
</table><small>(OPTIONAL: Fill out <i>YOUR</i> user name for selected
platform, below.)</small>
<input type="hidden" name="currency_code" value="USD">
这是我尝试过的java / jquery :(什么都没有进入数据库)
$(document).ready(function(){
$('#catSelect').on('change', function() {
if ( this.value == 'M')
{
$("#mcategory").val() == '1';
$("#pcategory").val() == '0';
$("#ecategory").val() == '0';
$("#ccategory").val() == '0';
$("#ocategory").val() == '0';
}
else
{
$("#matchcategory").val() = 0;
}
});
});
//and so on for each
这是我尝试过的php :(无论选择什么,一切都以0进入数据库) 更新:我发布了原始问题未使用的错误代码。这已更新为实际使用的代码,并且功能正常。
if ($catSelect == 'M') {
$mcategory = "1";
}
else {
$mcategory = "0";
}
if ($catSelect == 'P') {
$pcategory = "1";
}
else {
$pcategory = "0";
}
if ($catSelect == 'E') {
$ecategory = "1";
}
else {
$ecategory = "0";
}
if ($catSelect == 'C') {
$ccategory = "1";
}
else {
$ccategory = "0";
}
if ($catSelect == 'O') {
$ocategory = "1";
}
else {
$ocategory = "0";
}
任何帮助将不胜感激。另外,如果您可以提供详细信息,因为我还是编程新手。我究竟做错了什么?预先感谢您的协助!
答案 0 :(得分:2)
JavaScript不是Java
我并没有做太多的PHP,但是这种构造似乎是一厢情愿的
$_POST["mcategory".selected]
我不希望如此,而是
$cs = $_POST["catSelect"];
$mcategory = $cs == "M"; // boolean - same as $mcategory = $cs == "M" ? 1 : 0;
例如
选项也没有名称,ID或事件处理程序(如onclick),并且您过早关闭了开始选项标签
您在选择中也有两个名字
这是无效的jQuery
$("#mcategory").val() == '1';
但是
$("#catSelect").val("M")
将选择第一个选项
您想要这样的东西:
<select required name="catSelect" id="catSelect" class="form-control">
<option value="">Select One:</option>
<option value="M">M : </option>
<option value="P">P : </option>
<option value="E">E : </option>
<option value="C">C : </option>
<option value="O">O : </option>
</select>
使用类似
$catSelect = strtolower ($_POST["catSelect"]); // get the selected option value
foreach (str_split("mpeco") as $char) { // available options
${$catSelect."category"} = $char==$catSelect; // set each variable except selected to false
}