【问题标题】:Make echo result clickable and run new query使回显结果可单击并运行新查询
【发布时间】:2015-10-17 08:57:06
【问题描述】:

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

所以我现在问你们:

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

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

$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) );
   }

然后我将结果打印到表格中:

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]”.. 不知道这是否必要,但是..

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

   $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,但我无法让它工作。有没有人可以帮助我?我真的需要这个工作!

谢谢:)

【问题讨论】:

    标签: php mysql sql-server ajax clickable


    【解决方案1】:

    在 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.php 中的客户。任何的想法?还想知道如何在旧表格下方打印新表格,而不是在 CostumerID collum 中打印:D 再次感谢您的帮助!
    • 我还在 ajax.php 上看到我写了这个查询:“SELECT * FRO; Products WHERE Costumers”,它应该说是 CostumerID,而不是 Costumer,对此感到抱歉..
    • 让它工作,需要在 ajax.php 中使用 $_GET 而不是 $_POST。打印出来很容易解决,当然只需添加一个新表。你让我的一天 Shaymol Bapary!
    【解决方案2】:

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

    1. 接下来创建一个列,用于在 click 方法上调用 AJAX。
    2. 将客户 ID 传递给该 AJAX 函数
    3. AJAX 调用会将客户 ID 发送到指定的控制器
    4. 控制器/文件将获取客户 ID 并以 JSON 格式返回所需数据。
    5. AJAX 函数获取返回的 JSON 并相应地填充它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多