当前位置: 首页 > 知识库问答 >
问题:

使用 if-else 语句设置 JavaScript 变量,基于 $_POST 值

韩智敏
2023-03-14

我有一个包含单选按钮选项的表单,我想用它来指示一组变量的值。

单选按钮如下:

<table style="width:90%">
<tr><td><input type="radio" id="opt1" name ="selectOpt" value="option1"
checked="checked"/> Option 1</td><td><input type="radio" id="opt2" name ="selectOpt"
value="option2"/> Option 2</td></tr>
</table>

我能够回声单选按钮的值

<p id="selection">
<?php echo $_POST["selectOpt"];?></p>

所以我确信变量正在被继承。由于我将 $_POST 值传递给元素,以便用户看到选择了哪个值,因此我想我会使用元素 ID 来获取我的 if-else 语句的值。

下面是我的if-else语句的样子:

$(document).ready(function () {
var template = $("#selection").text();

if(template == 'option1'){
var part1 = "beautifulweather";
var part2 = "ishouldgooutside";
}

else if(template == 'option2'){
var part1 = "isthatrain";
var part2 = "imstayinginside";
}

weather = "www.weather.com/" + part1 + "ithink" + part2;

然后,我将此URL传递给一个按钮,该按钮有一个空的href,其中包含以下行:

var a = document.getElementById('weatherbtn');
a.href = weather;

但是,每当我单击链接时,第 1 部分

我在这里做错了什么?

解决

我需要改变的一般格式问题(几乎这里的每个人都指出了):我需要首先声明我的变量,并从if-else语句(第1部分/第2部分)中被赋值的变量中删除var关键字。

我还绕过了

元素并直接在模板变量中传递回声。工作代码如下所示:

$(document).ready(function (){
var part1, part2, template;
var template = '<?php echo $_POST["selectOpt"];?>';

if(template == 'option1'){
part1 = "beautifulweather";
part2 = "ishouldgooutside";
}

else if(template == 'option2'){
part1 = "isthatrain";
part2 = "imstayinginside";
}

天气="www.weather.com/"part1"我认为"part2;

谢谢大家——尤其是cdhowie关于JS不是块范围的说明。那快把我逼疯了。

共有3个答案

何浩荡
2023-03-14

您需要在if/else之外定义变量

var part1;
var part2;
if(template == 'option1'){
    part1 = "beautifulweather";
    part2 = "ishouldgooutside";
}

else if(template == 'option2'){
    part1 = "isthatrain";
    part2 = "imstayinginside";
}
颜君浩
2023-03-14
<p id="selection">
<?php echo $_POST["selectOpt"];?></p>

id不是样式的一部分。所以你必须从

标记,否则id未设置,$(“#selection”)将不会返回对象。所以使用上面的代码,它应该可以工作。

问候语

能钟展
2023-03-14

以下是我看到的问题:

$(document).ready(function () {
    var template = $("#selection).text();
    //                          ^
    // Missing closing quote mark

    if(template == 'option1'){
        var part1 = "beautifulweather";
        var part2 = "ishouldgooutside";
    }

    else if(template == 'option2'){
        var part1 = "isthatrain";
        var part2 = "imstayinginside";
        // Duplicate definition of variables.  JavaScript is not block-scoped.
    }

    // It's possible that the template variable does not match either string.
    // Therefore, the part1 and part2 variables might not be assigned here.

    weather = "www.weather.com/" + part1 + "ithink" + part2;

要解决前两个问题:

$(document).ready(function () {
    // Always declare variables first!
    var template, part1, part2;

    template = $("#selection").text();
    // Add quote mark       ^

    if(template == 'option1'){
        // Remove "var" keyword.
        part1 = "beautifulweather";
        part2 = "ishouldgooutside";
    }

    else if(template == 'option2'){
        // Remove "var" keyword.
        part1 = "isthatrain";
        part2 = "imstayinginside";
    }

    weather = "www.weather.com/" + part1 + "ithink" + part2;

要解决第三个问题(模板不匹配任一字符串),请考虑在调试时通过例如警报(JSON.stringify(模板))显示模板的值。字符串可能(并且很可能,考虑到您的标记)包含一些空格字符。我希望解决方案是将您的标记更改为:

<p id="selection"><?php echo $_POST["selectOpt"];?></p>
 类似资料:
  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0

  • else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例

  • 问题内容: 当我对目录()使用函数时,代码工作良好,但是当我调用文件()时,代码返回错误。 我在if / else语句中看到了这个问题(即使返回也可以运行),但是我不知道如何在promises中正确使用它。 问题答案: 返回一个承诺,这始终是一个真实的价值。您需要将条件放入回调中才能访问布尔值:

  • 我只是在学习编码,所以我遇到了“k不能解决”的问题。 我以前尝试过引入变量,如果运算符by: 我预期输出为2 相反,无法解析got k

  • 问题内容: 我刚刚开始学习go lang,而对于在go lang中声明变量感到困惑 例如我已经声明,里面if … else语句。 但是终端出现错误 好像我在If语句中声明的任何内容都不起作用…我该如何解决? 问题答案: 因为变量仅在声明它们的范围内定义: 去玩 之间的区别,并是仅仅是分配和对变量的声明和分配新建分配FY语法 这个: 等效于: 您可能想要的是:

  • 主要内容:if 语句,实例,if...else 语句,实例,if...else if...else 语句,实例,if...else 嵌套语句,实例Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。 实