我有以下代码在windows中的localhost中工作。但在服务器中,相同的代码失败。
if
条件即使data==found;
我检查了返回的数据值found
但未能执行的function checkAvailability() {
$("#loaderIcon").show();
jQuery.ajax({
url: "ajaxcheck.php",
data:'tran_id='+$("#tran_id").val(),
type: "POST",
success:function(data){
console.log(data);
//var x=data;
$("#loaderIcon").hide();
//console.log((data=="found"));
if(data=="found")
{
$("#singlebutton").prop('disabled', false);
console.log("fail");
$("#tran_id-status").html("Found");
}
else
{
console.log(data);
$("#singlebutton").prop('disabled', true);
$("#tran_id-status").html("");
console.log("ss");
}
},
error:function (){}
});
}
条件写入但是无法解决为什么代码不是正确执行
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
$space=" ";
if(!empty($_POST["tran_id"])) {
$result = mysql_query("SELECT count(*) FROM bank WHERE tran_id ='" . $space.$_POST["tran_id"] . "'");
$row = mysql_fetch_row($result);
$user_count = $row[0];
if($user_count>0) {
// echo "<span class='status-not-available' id=\"stat\"name=\"stat\" value=\"ok\"> Transaction Details Found.</span>";
echo"found";
}else{
//echo "<span class='status-available' id = \"stat\" name =\"stat\"value=\"not\"> (Enter Valid transaction id to submit)</span>";
echo"notfound";
}
}
?>
这是ajaxcheck.php
├─flasky
│ ├─app/
│ │ ├─templates/
│ │ ├─static/
│ │ ├─main/
│ │ │ ├─__init__.py
│ │ │ ├─errors.py
│ │ │ ├─forms.py
│ │ │ └─views.py
│ │ ├─__init__.py
│ │ ├─email.py
│ │ └─models.py
│ ├─migrations/
│ ├─tests/
│ │ ├─__init__.py
│ │ └─test*.py
│ ├─venv/
│ ├─requirements.txt
│ ├─config.py
│ └─manage.py
...
答案 0 :(得分:3)
问题是您的data
变量带有换行符。这有两种解决方案1.修剪返回值。 2.找出为什么php正在服务新线。
解决方案1:
if(data.trim()=="found")
这使用JS修剪函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim。
解决方案2:
尝试从PHP文件的末尾删除?>
(PHP文件仍然有效)。这样,如果在它之后有额外的行,它们将不会作为输出提供,JS将不会收到它们。
从手册:
如果文件是纯PHP代码,则最好省略文件末尾的PHP结束标记。这可以防止在PHP结束标记之后添加意外的空格或新行,这可能会导致不必要的影响,因为当程序员无意在脚本中发送任何输出时,PHP将启动输出缓冲。