ajax上的unidentified索引在提交时获取php文件

时间:2017-09-18 08:20:45

标签: javascript php ajax

我使用AJax调用php文件并获取值,但是,在提交时,一切正常但从被调用的php文件返回未识别的变量。

这是我的剧本

<script>
function showPrice(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET",'getcurrentpumpprice.php?q='+str,true);
        xmlhttp.send();
    }

    var pumpprice1 = document.getElementById('pumpprice').value;
    var amount1 = document.getElementById('amount').value; 
    document.getElementById('litre').value = (amount1)  / (pumpprice1);
}
</script>

这是我的PHP代码

$q = isset($_GET['q']);
$outletid = $session->userinfo['retailoutlet']; 

if($q == 'PMS'){
   $query = "SELECT pms_price FROM ".TBL_RETAIL_OUTLETS." WHERE outlet_id= '$outletid ' ";
    $result = $database->query($query);
    $row = $result->fetch_assoc();
    $pump_price =  $row['pms_price'];
}

echo '<div class="form-group">
                                                <label class="control-label col-md-3 col-sm-3 col-xs-12">Current Pump Price <span class="required">*</span>
                                                </label>
                                                <div class="col-md-6 col-sm-6 col-xs-12">
                                                  <input id="pumpprice" name="pumpprice" class="form-control col-md-7 col-xs-12" required="required" type="text" value="'.$pump_price.'" readonly="readonly">
                                                </div>
                                            </div>';

1 个答案:

答案 0 :(得分:0)

  

我使用AJax来调用php文件然后获取值   提交,一切正常但返回不明变量   来自被调用的php文件。

<强>原因

  

在你的情况下,变量$q永远不会是'PMS'因为你得到了   $q = intval($_GET['q']);所以if($q == 'PMS'){评估为false,变量$pump_price将是未定义的   总是

下面的示例评估 false 原因intval()

if($q == 'PMS'){

然后

您在$pump_price中使用的

变量(echo)将为undefined variable

您应该在echo声明中使用if

if($q == 'PMS'){
       echo 'your html';
} 

OR

if(isset($pump_price)){   
     echo 'your html';  
} 

最好在查询前验证,如果使用 PDO

,也会很好
if( isset($_GET['q']) && is_int($_GET['q']) ){

   $q = intval($_GET['q']);

   // your remaining code

}else{

   echo 'invalid input';

}