【问题标题】:Redirect to URL if input exists in database如果数据库中存在输入,则重定向到 URL
【发布时间】:2017-08-11 15:55:18
【问题描述】:

如果用户输入的值已经存在于数据库中,我正在尝试将用户重定向到现有 URL(存储在 MySQL 数据库中)。我已经大部分工作了,但我遇到了一些问题。

我正在使用 AJAX 来检查数据库。它将输入值发送到另一个 PHP 文件并检查数据库是否已经存在。

if($row) {
    echo ".$row["itemNum"].";
} else {

}

我在 AJAX 代码中遇到了问题,尤其是这个:

success: function (response) {
    if (response == <?php ".$row["itemNum"]." ?>) {
        window.location.href = "http://www.example.com/" <?php echo "+"; if (".$row["itemNum"].") { echo ".$row["itemNum"]." } else {""}
    } else {
        // do other stuff
    }
}

$row["itemNum"] 并不总是存在,所以它在条件语句中以防止语法错误。

无论我怎么做,上述方法都不起作用。

我感觉主要问题在于if (response == &lt;?php ".$row["itemNum"]." ?&gt;) 行?

【问题讨论】:

  • 尝试删除您的 echo "+"; 行,例如:window.location.href = "http://www.example.com/ &lt;?php if ($row["itemNum"]) { echo $row["itemNum"]; };
  • 您可能还想将if (response == &lt;?php ".$row["itemNum"]." ?&gt;) 更改为if (response == '&lt;?php ".$row["itemNum"]." ?&gt;'),即在回显值周围添加撇号。
  • 你不能这样混合php(服务器端)和js(客户端)

标签: javascript php html mysql ajax


【解决方案1】:

基于此代码:-

if($row) {
    echo $row["itemNum"]; // check the change here
} else {

}

你必须这样做:-

success: function (response) {
    if (response !== '') { // if response have some value
        window.location.href = "http://www.example.com/"+response;
    } else {
        // do other stuff
    }
}

【讨论】:

    【解决方案2】:

    正如您所怀疑的那样,以下行有问题。

    if (response == <?php ".$row["itemNum"]." ?>) {
    

    问题在于您使用了 (") 和 (.) 字符

    以下语法将为您提供所需的内容。

    if (response == <?=$row["itemNum"]?>) {
    

    【讨论】:

      猜你喜欢
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2016-11-19
      相关资源
      最近更新 更多