如果,否则,两者都给出相同的答案

时间:2015-05-16 23:44:51

标签: php if-statement mysqli

在提交表单时,我遇到了一些运行PHP的问题。

我正在尝试通过按下哪个提交按钮来确定变量,并抓住​​$_POST['name']来执行一些SQL选择。目前我的表单中有两个提交按钮,分别是YES和NO。

我遇到的问题是我不断从我的查询中得到相同的答案,但是当我在我的数据库中测试时它工作得很好。这似乎是我的if / else声明中的内容。

<?php

require_once ("/includes/session.php");
require_once ("/includes/db_connection.php");
require_once ("/includes/functions.php");
require_once ("/includes/validation_functions.php");

if ($_POST['answer1']) {
  $chosenAnswer = 1;
} else if ($_POST['answer2']) {
  $chosenAnswer = 2;
}

$query = "SELECT questionFlow.NxtQ FROM ";
$query .= "questionFlow WHERE area = '{$_SESSION['probArea']}' ";
$query .= "AND ANSid = '{$chosenAnswer}' AND Qid = '{$_SESSION['x']}'";
$result = mysqli_query($connection, $query);
while ($row = mysqli_fetch_assoc($result)) {
  print_r($row["NxtQ"]);
}
?>



<form action="Assets/ajax/questions.php" id="ajax-questionset" method="post">

    <br />
    <br />
    <?php echo($howmany); ?>
    <br />
    <br />
    <div><?php echo($currentquestion); ?></div>
    <span>
        <button class="btn btn-hero" type="submit" name="answer1" value="1"/><?php echo($answer1); ?></button>
        <button class="btn btn-hero" type="submit" name="answer2" value="2"><?php echo($answer2); ?></button>
    </span>

</form>

根据Bug的建议,我已经在javascript中添加了一个警报,现在正在给我正确的值,但是它搞砸了我的ajax并且它现在正在加载php页面而不是这样做'盲目' (因为缺少更好的词)

有什么建议吗?

function buttonB_clickHandler(event) {
document.getElementById('hiddenId').value = 2;
document.getElementById('ajax-questionset').submit();

}

通过取出javascript .submit并将其应用于自己阅读type="submit"的按钮来解决此问题。

再次感谢所有宝贵的反馈人员,我喜欢这个网站,很棒的社区!

2 个答案:

答案 0 :(得分:1)

阅读我的评论并尝试这样的事情:

<input id="buttonA" type="button" value="do something" onclick="buttonA_clickHandler(event);"/>

function buttonA_clickHandler(event) {
    document.getElementById('hiddenId').value = whatever;
    document.getElementById('theForm').submit();
}

重复其他按钮的代码,更改功能名称和其他代码。

答案 1 :(得分:0)

尝试将{}添加到else语句并添加isset

    if(isset($_POST['answer1'])){
        $chosenAnswer = 1;
    } 
    else {
        if (isset($_POST['answer2'])){
        $chosenAnswer = 2;
        }
   }