【问题标题】:Send PHP Link data from ajax call to different page onclick将 ajax 调用中的 PHP 链接数据发送到不同的页面 onclick
【发布时间】:2017-01-15 08:11:16
【问题描述】:

我正忙着学习 ajax。我有一个预订页面和一个结帐页面。

我想做的事

用户在搜索框中输入租用者姓名,匹配的名称从数据库中获取并动态显示。

像这样:

reservations.php

当用户单击突出显示的链接时,我希望将预订 ID 传递到结帐页面。因此,我正在寻找一种将预订 ID 传递到另一个/不同页面的方法,我可以将其用于结帐页面上的数据处理。

checkout.php

代码

搜索/查询

$(document).ready(function () {
        $("#searchbox").on('keyup',function () {
            var key = $(this).val();

            $.ajax({
                url:'fetch.php',
                type:'GET',
                data:'keyword='+key,
                beforeSend:function () {
                    $("#results").slideUp('fast');
                },
                success:function (data) {
                    $("#results").html(data);
                    $("#results").slideDown('fast');
                }
            });
        });
    });
</script>
<div id="main">
    <div id="header"><h1>Find Names</h1></div>
    <div id="content">
        <input type="search" name="keyword" placeholder="Search Names" id="searchbox">
        <div id="results"></div>
    </div>
</div>

FETCH.PHP

  if($_GET['keyword'] && !empty($_GET['keyword']))
    {
        $conn = mysqli_connect('localhost','root','','*****'); //Connection to my database
        $keyword = $_GET['keyword'];
        $keyword="%$keyword%";
        $query = "select renter_name from reservations where renter_name like ?";
        $statement = $conn->prepare($query);
        $statement->bind_param('s',$keyword);
        $statement->execute();
        $statement->store_result();
        if($statement->num_rows() == 0) // so if we have 0 records acc. to keyword display no records found
        {
            echo '<div id="item">Ah snap...! No results found :/</div>';
            $statement->close();
            $conn->close();

        }
        else {
            $statement->bind_result($name);
            while ($statement->fetch()) //outputs the records
            {
                echo "<div id='item'>$name</div>";
            };
            $statement->close();
            $conn->close();
        };
    };

数据库

非常感谢您在实施方面的任何帮助或建议!

【问题讨论】:

  • 这将与您已经拥有的非常相似,不同之处在于您需要捕获 click 事件,而您现在已经捕获了 keyUp 事件。究竟是什么问题?
  • @jeroen 我需要 1)根据用户单击的名称,从搜索框中的名称匹配中获取 res_id 2)将其传递并填充到结帐屏幕表单字段...希望有意义
  • 为什么我要对这个问题投赞成票,我确实在这个问题上付出了很多努力,试图在符合指导方针的同时提供尽可能多的细节。

标签: javascript php jquery mysql ajax


【解决方案1】:

只需使用链接和查询。 首先回显一个链接而不是一个 div:

echo "<a href='yourpage.php?id=$name'>$name</a>";

然后在您的页面上执行以下操作:

<?php
echo $_GET[" id"];
?>

【讨论】:

  • 工作就像一个魅力,非常感谢!如果您不介意,最后一个问题..我不需要与名称关联的res_id..因此,我需要更改我的sql查询$keyword = $_GET['keyword']; $keyword="%$keyword%"; $query = "select renter_name, from reservations where renter_name like ?"当我添加query = "select res_id, renter_name, from reservations where renter_name like ?";时,我得到了错误Number of bind variables doesn't match number of fields in prepared statement 知道如何解决这个问题吗?
  • @Marilee:你没有打错 $query(你在评论中写了 query=)?
  • 对不起,它应该是,'$query`,现在正在处理它,认为我在正确的路径上交叉手指
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 2014-05-25
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多