簡體   English   中英

回聲未打印任何內容(之前)

[英]Echo not printing anything (It was before)

我對php代碼的回顯有些頭疼,問題是,即使在以前,它也沒有在屏幕上打印任何內容,當然我添加了一個功能,但是當我使用firebug調試它時,它顯示了它正在正確地從數據庫中獲取信息,只是不將其打印在屏幕上。

在應該顯示列表的地方,只有空白空間凝視着我的靈魂。

如果有人能指出我是否想念我,我將不勝感激,以及為什么會這樣,所以我不必再煩擾任何人了,如果需要,可以分享我新獲得的知識。

PHP

function displayInfoLabs(){  

if(isset($_POST['pId'])){

    $id = $_POST['pId'];

        $info = getSpecificLabs($id);

while($row = mysql_fetch_assoc($info)){
echo '<ul>' .
        '<li>Laboratorio # ' . $row['codigolab'] . '</li>' .
        '<li>Capacidad: ' . $row['capacidad'] . '</li>' .
        '<li>Carrera: ' . $row['carrera'] . '</li>' .
        '<li>Ubicación: ' . $row['ubicacion'] . '</li>' .
     '</ul>';

   }
  }
 }


function getSpecificLabs($pId){  


 $query = "SELECT bk.idlab , bk.codigolab , bk.capacidad, bk.carrera, bk.ubicacion FROM labs as bk WHERE bk.idlab = $pId";

 $result = do_query($query);

 return $result;
}

供參考,我還包括此函數的html和JS代碼。

JS

$("#lnkInfo").click(function() {
  var id = $('#txtId').val();


 var request = $.ajax({
  url: "includes/functionsLabs.php",
  type: "post",
  data: {

    'call': 'displayInfoLabs',
    'pId':id},

    dataType: 'json',

success: function(response){
        alert('exito')

    }
  });
});

通過PHP創建的HTML,請注意lnkInfo,后者調用JS,而后者又調用PHP

function displayList(){

 $lista = getLabs();

while($row = mysql_fetch_assoc($lista)){
echo 
      '<div class="box" id="lab'.$row['idlab'].'">
          <p id="labName">Lab #'.$row['codigolab'] . '</p>
          <p class="info"><a href="#" id="lnkInfo">Info</p></a>
          <p class="info"><a href="reservarLab.html">Reservar</p></a>
          <input type="hidden" name="txtId" id="txtId" value="'.$row['idlab'].'">
      </div>';
 }
}

非常感謝。

編輯:

更改成功功能會使列表出現,但它會覆蓋div的樣式,包括其所具有的按鈕和所有按鈕。 這是div的代碼。

div class="popUp1 hide" id="popUpCorrecto1">
        <div class="estiloPopUp">
          <span>Información de laboratorio</span>
          <span value="Cerrar" id="btnCerrar">x</span>
        </div>



          <input type = "button" value = "Eliminar" id = "btnEliminar" onclick="eliminar()" />
          <input type = "button" value = "Modificar" id = "btnModificar"  onclick="window.location='modificarLab.html';" />

        </div>  

正如您在評論中所說,您的數據已被捕獲,但沒有將其附加到文檔中。 您只是在做:

alert('exito');

您要做的是將響應附加到頁面中存在的元素。

例如,我們可以將<div>mydata的ID放置在一起,如下所示:

<div id="mydata"></div>

現在,在您的jQuery.ajax函數中,您可以執行以下操作:

$("#lnkInfo").click(function() {
  var id = $('#txtId').val();


 var request = $.ajax({
  url: "includes/functionsLabs.php",
  type: "post",
  data: {

    'call': 'displayInfoLabs',
    'pId':id},

    dataType: 'text/html',

success: function(response){
        $('#mydata').html(response);

    }
  });
});

正如您在上面看到的,我們修改了您的success功能,使其包括

$('#mydata').html(response);

如果正確打印並提供了所有數據,則應在頁面上顯示。

編輯:

似乎在您的PHP查詢中

 $query = "SELECT bk.idlab , bk.codigolab , bk.capacidad, bk.carrera, bk.ubicacion FROM labs as bk WHERE bk.idlab = $pId"; 

您正在選擇以bk.*為前綴的列,但嘗試打印不帶前綴的值,如下所示:

  echo '<ul>' . '<li>Laboratorio # ' . $row['codigolab'] . '</li>' . '<li>Capacidad: ' . $row['capacidad'] . '</li>' . '<li>Carrera: ' . $row['carrera'] . '</li>' . '<li>Ubicación: ' . $row['ubicacion'] . '</li>' . '</ul>'; 

嘗試將以上內容更改為:

$('#mydata').html(response);

如果我正確理解的話。

編輯:忽略上面的php示例。

success功能從以下位置更改:

 $('#mydata').html(response); 

 $('#mydata').append(response); 

由於.html()用提供的內容替換指定元素中的所有內容。

編輯#2:

從注釋中可以看出, #LnkInfo觸發#LnkInfo時, #LnkInfo運行ajax請求,這似乎在加載PopUp時發生了很多?

您想要做的是添加一些邏輯,或者在jQuery函數中檢查您是否已經將列表添加到了彈出窗口,並停止了添加。

只需在其中的某個地方添加布爾變量即可完成。 或者,您可以在該彈出窗口中添加一個小div,然后將其附加到該彈出窗口。

例:

這是您的彈出窗口:

 div class="popUp1 hide" id="popUpCorrecto1"> <div class="estiloPopUp"> <span>Información de laboratorio</span> <span value="Cerrar" id="btnCerrar">x</span> </div> <!-- ADDED A NEW DIV HERE FOR LIST CONTENT --> <div id="mylistcontent"></div> <input type = "button" value = "Eliminar" id = "btnEliminar" onclick="eliminar()" /> <input type = "button" value = "Modificar" id = "btnModificar" onclick="window.location='modificarLab.html';" /> </div> 

如您在上面看到的,我添加了以下內容:

 <!-- ADDED A NEW DIV HERE FOR LIST CONTENT --> <div id="mylistcontent"></div> 

現在,在您的jQuery success函數中,您可以將其附加到#mylistcontent div而不是彈出div上:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM