使 echo 结果可点击并 运行 新查询

Make echo result clickable and run new query

我已经在网上搜索了几个小时,但我仍然无法弄明白。

所以我现在问你们:

好的,我有 ha 网站和一个 MS SQL 服务器,(loalhost),我希望这个功能可以工作:

首先:我 运行 查询打印出我数据库中的所有客户(在 table 中):`

$searchq = $_POST['search'];

   $resultArray = array();
   $sql = "SELECT * FROM Costumers WHERE firstname LIKE '%".$searchq."%' ";
   $stmt = sqlsrv_query( $conn, $sql);
   if( $stmt == false){
       die( print_r(sqlsrv_errors(), tue) );
   }

然后我将结果打印在 table:

echo "<table border='1'>";
echo "<tr><th>CustomerID</th><th>Firstname</th><th>Lastname</th><th>Tlf</th><th>Email</th><th>Productnr</th><th>Address</th></tr>";


    while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_BOTH)) 


{
    $resultArray[] = $row;

        echo "<tr>";
        echo "<td>" . $row[0] . "</td>";
        echo "<td>" . $row[1] . "</td>";
        echo "<td>" . $row[2] . "</td>";
        echo "<td>" . $row[3] . "</td>";
        echo "<td>" . $row[4] . "</td>";
        echo "<td>" . $row[5] . "</td>";
    echo "<td>" . $row[6] . "</td>";
    echo "</tr>";

}
echo "</table>";

我制作了一个数组列表,这样我就可以在后面的代码中使用变量 "row[x]".. 不知道这是否必要但是..

第二: 我现在希望这些行可以点击,所以如果你点击 table 中的客户,你现在将 运行 一个新查询:

   $sql = "SELECT * FROM Products WHERE Costumers =  '".$resultArray[0]['']."' ";
   $stmt = sqlsrv_query( $conn, $sql);
   if( $stmt == false){
       die( print_r(sqlsrv_errors(), tue) );
   }
 echo "<table border='1'>";
 echo "<tr><th>CustomerID</th><th>Firstname</th><th>Lastname</th><th>Tlf</th><th>Email</th><th>Productnr</th><th>Address</th></tr>";


while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) 
    {

        echo "<tr>";
        echo "<td>" . $row[0] . "</td>";
        echo "<td>" . $row[1] . "</td>";
        echo "<td>" . $row[2] . "</td>";
        echo "<td>" . $row[3] . "</td>";

    echo "</tr>";



    }
        echo "</table>";

它现在应该打印出所有包含与我单击的相同 CosuterID 的产品。

我发现我需要使用 som AJAX,但我无法让它工作。有人可以帮助我吗?我真的需要这个来工作!

谢谢:)

在td上设置onClick功能 这里还包括最新的 Jquery 文件

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<?php
echo "<table border='1'>";
echo "<tr><th>CustomerID</th><th>Firstname</th><th>Lastname</th><th>Tlf</th><th>Email</th><th>Productnr</th><th>Address</th></tr>";


    while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_BOTH)) 


{
    $resultArray[] = $row;

        echo "<tr>";
        echo "<td onClick='lodaproduct(" . $row[0] . ")'>" . $row[0] . "</td>";
        echo "<td>" . $row[1] . "</td>";
        echo "<td>" . $row[2] . "</td>";
        echo "<td>" . $row[3] . "</td>";
        echo "<td>" . $row[4] . "</td>";
        echo "<td>" . $row[5] . "</td>";
    echo "<td>" . $row[6] . "</td>";
    echo "</tr>";

}

//Set another row column to show the out put from ajax.php page 
echo "<tr><td id='costumersdata'></td></tr>";

echo "</table>";
?>

<script>
function lodaproduct(Costumers){
    $.post("ajax.php?Costumers="+Costumers, 
        function(data){
            $("#costumersdata").html(data);
    }); 
}
</script>

在您的 ajax.php 页面上

<?php
    $sql = "SELECT * FROM Products WHERE Costumers =  '".$_POST['Costumers']."' ";
   $stmt = sqlsrv_query( $conn, $sql);
   if( $stmt == false){
       die( print_r(sqlsrv_errors(), tue) );
   }
 echo "<table border='1'>";
 echo "<tr><th>CustomerID</th><th>Firstname</th><th>Lastname</th><th>Tlf</th><th>Email</th><th>Productnr</th><th>Address</th></tr>";


while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) 
    {

        echo "<tr>";
        echo "<td>" . $row[0] . "</td>";
        echo "<td>" . $row[1] . "</td>";
        echo "<td>" . $row[2] . "</td>";
        echo "<td>" . $row[3] . "</td>";

    echo "</tr>";



    }
 echo "</table>";       
?>      

我正在逐步说明,因此您可以按照以下方式操作:

  1. 接下来创建一个列,用于调用 AJAX 点击方法。
  2. 将客户 ID 传递给 AJAX 函数
  3. AJAX 调用会将客户 ID 发送到指定的控制器
  4. 控制器/文件将获取客户 ID 和 return JSON 中所需的数据。
  5. AJAX 函数获取 returned JSON 并相应地填充它。