使用jQuery将数据传递给PHP并检索数据以便在另一个页面中显示

时间:2014-04-11 04:47:48

标签: php jquery

我目前有两个页面是“index.php”,“retrieve_search_forklift.php”和“search_forklift.php”。

我尝试使用jQuery $ .post方法将index.php中的“txtSearch”输入传递给“retrieve_search_forklift.php”,以执行select查询并回显$ output。 在“search_forklift.php”中将使用一个函数在页面加载时加载“retrieve_search_forklift.php”并在表格中显示$ output。

的index.php

$('#txtSearch').keydown(function(e) {
        var code = (e.keyCode || e.which);
        if((code == 13)){
            txtSearch = $('#txtSearch').val();
            $.post('php/retrieve_search_forklift.php',{
                txtSearch : txtSearch
            },
            function(data){
                //alert(data);
                window.location.replace("search_forklift.php");
            })
        }
    });

Retrieve_search_forklift.php

<?php
require('../database_connection.php');
if($txtSearch = $_POST['txtSearch']){
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$query = "SELECT f_brand, f_ftype, f_image, f_code, f_description, f_sale, f_rental FROM tblforkliftdetail WHERE f_brand='Toyota'";
$result = mysqli_query ($mydatabase, $query);

$counter = 0;
while($info = mysqli_fetch_array( $result )) 
{  
    if( $counter % 3 == 0 )
        $output .= "<tr>";
        $output .= "<td style='background-color:yellow; '><img src=".$info['f_image'] ." width=210px height=210px ></img></p></td>";
        $output .= "<td style='background-color:black;'>";
        $output .= "</td>";
    if( $counter % 3 > 1)
         $output .= "</tr>";

    $counter++;
}
echo $output;
}
@mysqli_close($mydatabase);
?>

Search_forklift.php

$(document).ready(function(){
loadsearchtblForklift();
});

function loadsearchtblForklift(){
$('#tblsearchForklift').load('php/retrieve_search_forklift.php');
}


<table id="tblsearchForklift">
    <tbody>
    </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

我将简化这一点。

您正在提出从A到B的请求;然后要求C显示B先前生成的数据。除非你在某处存储B的数据(DB /文件系统),否则这个男孩是不可能的。

为什么?

A - &gt; B是单独的请求并且C - > B是分开的。服务器不知道它必须存储数据以供将来请求使用。你必须改变方法来实现这个逻辑。

我的建议 -

放弃&#39; Search_forklift.php&#39;并直接在&quot; index.php&#39;中显示结果。页面直接。

更改了index.php文件

$('#txtSearch').keydown(function(e) {
        var code = (e.keyCode || e.which);
        if((code == 13)){
            txtSearch = $('#txtSearch').val();
            $.post('php/retrieve_search_forklift.php',{
                txtSearch : txtSearch
            },
            function(data){
                $('#tblsearchForklift').html(data);
            })
        }
    });


<table id="tblsearchForklift">
    <tbody>
    </tbody>
</table>

或者,存储&#39; Retrieve_search_forklift.php&#39;在txt文件中或使用会话密钥进入数据库中的CLOB列,并使用相同的密钥检索它以显示在&#39; Search_forklift.php&#39;中。

这种方法应该确保那个人每天都要诅咒他们的生命。可能是你自己可能会在一两年后做到这一点。 :)别在这里弄错了。但我只是想让你了解网络和编程生活的方式。

编辑:再次阅读,我有另一种方法(坏)的想法。你可以用另一种方式做到这一点。

返回index.php中的ajax调用后,将结果发布到&#39; Search_forklift.php&#39;页面,然后在那里说

<table id="tblsearchForklift"><?php echo $_POST[results]; ?></table>