【问题标题】:Ajax wont stop if false如果为假,Ajax 不会停止
【发布时间】:2021-11-07 09:52:04
【问题描述】:

我的 ajax 有问题,

这里是我的索引:

<form name="add_name" id="add_name">
  <div class="col-lg-12">
    <div class="form-row mb-2">
      ID Kurir :
      <div class="col">
        <input type="text" id="idkurir" name="idkurir" placeholder="Input ID Kurir" class="idkurir" autofocus />
      </div>
      Nama Kurir :
      <div class="col">
        <input type="text" id="namakurir" name="namakurir" value="Nama Kurir" class="namakurir" readonly />
      </div>
      No Laporan :
      <div class="col">
        <input type="text" id="nolaporan" name="nolaporan" value="No Laporan" readonly />
      </div>
      Date :
      <div class="col">
        <?php $now=date('d-m-Y H:i'); ?>
        <input type="text" name="date" value=<?php echo "'$now'"; ?> readonly />
      </div>
    </div>
    <div class="row">
      <div class="col-lg-6">
        <table class="table table-bordered" id="dynamic_field1">
          <tr>
            <td colspan=2 align=center><strong>Antar Ulang</strong></td>
          </tr>
          <tr>
            <td><input type="text" name="awbau[]" placeholder="Enter AWB" class="form-control name_listau" /></td>
            <td><button type="button" name="addau" id="addau" class="btn btn-success">Add More</button></td>
          </tr>
        </table>
      </div>

      <div class="col-lg-6">
        <table class="table table-bordered" id="dynamic_field2">
          <tr>
            <td colspan=2 align=center><strong>Undelivery</strong></td>
          </tr>
          <tr>
            <td><input type="text" name="awbundel[]" placeholder="Enter AWB" class="form-control name_listundel" /></td>
            <td><button type="button" name="addundel" id="addundel" class="btn btn-success">Add More</button></td>
          </tr>
        </table>
      </div>
    </div>
    <center><input type="button" name="submit" id="submit" class="btn btn-info btn-block mb-4 mr-2" value="Submit Data" /></center>
</form>

这里是我的 ajax 脚本:

$(document).on("keypress", ".idkurir", function(e) {
  var idkurir = $('#idkurir').val();
  if (e.which == 13) {

    $.ajax({
      type: "POST",
      url: "checkdata.php",
      data: {
        idkurir: idkurir
      },
      success: function(response) {
        if (response == 1) {
          alert("Kurir sudah laporan");
        } else {
          if (response == "ID Kurir tidak di temukan") {
            alert(response);
          } else {
            var d = new Date();
            var today_date = ("0" + d.getDate()).slice(-2) + ("0" + (d.getMonth() + 1)).slice(-2);
            $('#nolaporan').val(idkurir + today_date);
            $('#namakurir').val(response);
          }
        }
      }
    });
  }
});

这里是我的 checkdata 来检查数据是否存在:

session_start();
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("reportchecker", $connect);
$idkurir = $_POST["idkurir"];
$nolaporan = $idkurir . date("dm");
$sql = "SELECT * FROM jampulang WHERE nolaporan = '$nolaporan'";
$result = mysql_query($sql, $connect);
$count = mysql_num_rows($result);
$response = [];
$sql2 = "SELECT * FROM kurir WHERE idkurir = '$idkurir'";
$result2 = mysql_query($sql2, $connect) or die(mysql_error());
$count2 = mysql_num_rows($result2);
if ($count == 1) {
    echo "1";
} else if ($count2 == 1) {
    $row = mysql_fetch_array($result2) or die(mysql_error());
    echo $row['nama'];
} else {
    echo "ID Kurir tidak di temukan";
}

我的问题是当 checkdata = "ID Kurir tidak di temukan" 的响应时,ajax 没有显示警报并停止更新字段 nolaporan 和 nama kurir

$('#nolaporan').val(idkurir + today_date);
$('#namakurir').val(response);

在我上面的脚本中,当响应“ID Kurir tidak di temukan”时仍然更新字段 nolaporan 和 namakurir。

【问题讨论】:

  • 哦不!您对 SQL 注入攻击持开放态度!如果 $nolaporan 是 '; DROP TABLE jampulang; -- 怎么办?
  • 我仅将其用于离线数据
  • 尝试将response = response.trim() 放在success 函数的开头。响应周围可能有额外的空格。
  • 我明白了,我改变了条件并解决了
  • 警告: mysql_* 扩展自 PHP 5.5.0 起已弃用,自 PHP 7.0.0 起已被删除。相反,应该使用mysqliPDO_MySQL 扩展名。在选择 MySQL API 时,另请参阅 MySQL API Overview 以获得更多帮助。

标签: php jquery sql ajax


【解决方案1】:

您可以使用$.trim() 在客户端修复它,如下所示:

if($.trim(response) == 'ID Kurir tidak di temukan') {
        //do your code
}

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2023-03-07
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2020-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多