2017-06-15 39 views
0

我正在开发一个工作项目,并且遇到了一些问题。 我正在创建基于PDO查询和ajax的动态元素,并且我已经搜索并搜索来解决我的特定问题。基本上,我有两个从数据库响应中动态添加的选择框,不管选择哪个选项,所有动态创建的按钮都完全相同。使用ODBC PDO和Ajax问题

我也为每个机架/托盘创建了计时器,同样的问题也出现在计时器上。只有一个创纪录的机架^ h盘8 Rack H Tray 8

我db_connect.php

$first = "odbc:TIMERODBC"; 
$user = "exampleuser"; 
$pass = "examplepass"; 
$pdo = new PDO($first,$user,$pass); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

下面是我查询数据库

public function selectOven() 
    { 
    try{ 
     $stmt = $this->conn->query("SELECT sub.equipName FROM STR_EquipSubCategory sub LEFT JOIN STR_EquipCategory category ON category.categoryID = sub.categoryID GROUP BY sub.equipName"); 
     $data = $stmt->fetchAll(); 
     foreach($data as $row) 
     { 
     echo "<option value=" . $row['equipName'] . "><strong>" . $row["equipName"] . "</strong></option>"; 
     } 
    } 
    catch(PDOException $e) { 
     return $e->getMessage(); 
    } 
    } 
    public function selectRack($oven) { 
    try{ 

     $sth = $this->conn->prepare('SELECT storageBayName FROM STR_EquipSubCategory WHERE equipName =:oven'); 
     $sth->bindParam(':oven',$oven,PDO::PARAM_STR); 
     $sth->execute(); 
     $data = $sth->fetchAll(); 
     echo "<select id='rack' class='custom-select mb-2'>Rack"; 
     echo "<option value ='Select Rack'></option>"; 
     foreach($data as $row) 
     { 
     echo "<option id=".$row['storageBayName']." value=". $row["storageBayName"] . ">". $row["storageBayName"] . "</option>"; 
     } 
     echo "<select>"; 
    } 
    catch(PDOException $e) { 
     return $e->getMessage(); 
    } 
    } 

    public function selectRackTray($oven,$rack) { 
    try{ 
     $sth = $this->conn->prepare("EXECUTE STR_GetTimerOpenTraysSp ?, ?"); 
     $sth->bindParam(1,$oven,PDO::PARAM_STR); 
     $sth->bindParam(2,$rack,PDO::PARAM_STR); 
     $sth->execute(); 
     $data = $sth->fetchAll(); 
     foreach($data as $row) 
     { 
     if(($row['material'] != 0)) { 
      echo "<div class='row'>"; 
      echo "<button type='button' id='tray".$row['storageBayName']." ". $row['sublevelID'] ."' class='btn btn-danger' data-toggle='popover'>Tray " .$row['sublevelID'] . "</button>"; 
      echo "</div>"; 
     } 
     else { 
      echo "<div class='row'>"; 
      echo "<button type='button' id='emptyTray".$row['storageBayName']. " ".$row['sublevelID'] ."' class='btn btn-success'>Tray " .$row['sublevelID'] . "</button>"; 
      echo "</div>"; 
     } 
     } 
    } 
    catch(PDOException $e) { 
     return $e->getMessage(); 
    } 
    } 

现在我的我的class.db.php文件阿贾克斯jQuery的&阿贾克斯

$(document).ready(function(){ 
    $("select#oven").change(function(){ 
    var selectedOven = $("#oven option:selected").val(); 
    $.ajax({ 
     type: "POST", 
     url: "process-request.php", 
     data: { oven : selectedOven } 
    }).done(function(data){ 
     $("#rackResponse").html(data); 
    }); 
    }); 
}); 
$(document).on('change', "select#rack", function() { 
    var selectedRack = ($(this).val()); 
    var selectedOven = ($("#oven option:selected").text()); 

    $.ajax({ 
     type: "POST", 
     url: "process-a-request.php", 
     data: 
     { 
      rack: selectedRack, 
      oven: selectedOven 
     }, 
    }).done(function(data){ 
     $("#tResponse").html(data); 
    }); 
}); 

如果有人能帮助我,我会格雷亚很欣赏它。请注意,我对PHP没有超级经验,但其他一切似乎都正常工作。

+1

你的问题是什么? –

+0

*«...无论选择哪个选项,所有动态创建的按钮都完全相同。»*我想这是问题。 –

+0

我需要停止按照Rack_H创建其他机架的按钮。基本上,当为机架H输入信息时,机架G和机架F中的其他机架与机架H相同,当G和F都为空时。如果您查看上面张贴的计时器图片,应显示计时器的唯一纸盒是Rack H纸盒8,但Rack G和F的纸盒8显示计时器时应该显示为空。 –

回答

0

我的问题不是与ajax,php或PDO语句。我对我正在调用的存储过程进行了一些测试,并在那里发现了问题。谢谢你试图帮助我。