如何使用 onclick 事件将 Javascript 变量传递到 PHP

2023-12-09

我正在尝试将 JavaScript 变量传递给 PHP,以便我可以创建一个(MySQL)查询来返回单个记录。用户将输入一个搜索字符串,无论有多少记录都包含匹配的字符串,该搜索字符串都会返回。然后用户将选择他们想要查看的单个记录。

这是我的 HTML (recipe_summary.php):

<head>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script type="text/javascript" src="script.js"></script>      
</head>
<body>
<table>
   <tr>
       <th>Recipe ID</th>
       <th>Title</th>
       <th>Ingredients</th>
       <th>Recipe</th>
    </tr>
    <?php foreach($search_results as $result) { ?>
    <tr>
        <td><a href="#" name="<?php echo $result['recipe_id']; ?>"><?php echo $result['recipe_id']; ?></a></td>
        <td><?php echo $result['title']; ?></td>
        <td><?php echo $result['ingredients']; ?></td>
        <td><?php echo $result['recipe']; ?></td>
    </tr>
    <?php }; ?>
</table>
</body>

这是我的js(script.js):

$(document).ready(function () {
        var myText;

        $("a").click(function(){
            myText = $(this).text();
            ajax_post(myText);
        });

        function ajax_post(myText){
            var hr = new XMLHttpRequest();
            var url = "recipe_result.php";
            var passedVal = myText;
            var myVal = "recipe_id=" + myText;

            hr.open("POST", url, true);
            hr.setRequestHeader("Content_type","application/x-www-form-urlencoded");
            hr.onreadystatechange = function () {
                if(hr.readyState == 4 && hr.status == 200) {
                    var return_data = hr.responseText;
                    document.getElementById("status").innerHTML = return_data;
                }
            }
            hr.send(myVal);
        };    
}); 

这是recipe_result.php:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Untitled Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
    <script type="text/javascript" src="script.js"></script>   
</head>
<body>
    <?php 
        if(isset($_POST['recipe_id'])){
            echo "SET";
        } else {
            echo "NOT SET";
        }

    ?>
    <div id="status"></div>

</body>
</html>

用户将单击锚标记(recipe_summary.php),该标记将触发 script.js 上的单击事件,该事件将存储recipe_ID(这就是我迷失的地方)并将其传递给 ajax_post()。从这里我尝试将存储的变量作为 php 变量发送到“recipe_result.php”,然后我将在 MySQL 中使用该变量仅返回选定的记录。

在recipe_result.php $_POST['recipe_id'] 上未设置,所以我不确定我的错误在哪里。

我不熟悉 ajax,但从我读过的内容来看,ajax 似乎是解决方案。我看过很多教程(ajax_post() 中的所有内容都来自我试图遵循的教程),但通常它们从 HTML 表单开始,然后将结果写入同一页面。


你的代码看起来不错,只需阅读recipe_id在PHP中像这样

echo $_POST['recipe_id']; 

还看看$_POST多变的文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 onclick 事件将 Javascript 变量传递到 PHP 的相关文章

  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • 带有列标题的php数组到csv的转换

    我想将数组转换为 csv 我能够将关联数组转换为 csv 但无法获取标题 我想要动态地将数字类型日期作为标题 下面是我转换的数组 Array 0 gt Array NUMBER gt 67 TYPE gt Other DATE gt 3 3
  • Chrome SuppressDifferentOriginSubframeJSDialogs 使用 JS 设置覆盖?

    Chrome 开发团队显然刚刚推出了一项名为 SuppressDifferentOriginSubframeJSDialogs 的新 功能 这使得默认情况下不会显示来自与父级不同域上的 iFrame 的警报 确认框 https www ch
  • 是否可以将反应组件导出为非反应项目中的函数

    有没有办法在非 React 项目中将 React 组件导出为函数并传入 props 作为函数的参数 我最近用 create react app 完成了一个 React 项目 现在我想将它用于其他非 React 项目 纯 Javascript
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • 显示产品中的类别名称和类别 ID - Laravel

    我已经找到了这个答案 但它对我不起作用 Laravel 按 id 显示类别 https stackoverflow com questions 39222584 laravel displaying categories by id 我无法
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • 是否可以从插件扩展 Wordpress XMLRPC 接口?

    是否可以创建一个插件 在激活时向 XMLRPC 接口添加新的 功能 并处理其调用 简而言之 是的 您可以将函数添加为插件或添加到主题的functions php 文件中来处理XMLRPC 调用 您将需要以下部分 function xml a
  • 对文本变量进行数学求和? (例如 5865/100 )

    我有一个变量是 whatever 5865 100 这是一个文本变量 我希望它计算 5865 100 以便我可以将其添加到其他数字并进行计算 Number format 不起作用 因为它只返回 5 865 而我希望它返回 58 65 我可以
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Javascript 选择 onchange='this.form.submit()'

    我有一个带有选择和一些文本输入的表单 我希望在更改选择时提交表单 使用以下方法可以正常工作 onchange this form submit 但是 如果表单还包含提交按钮 则当选择更改时 表单不会提交 我猜有某种冲突 我在这里有什么选择
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • Laravel 5 Socialite - cURL 错误 77:设置证书验证位置时出错

    我正在 Laravel 5 中使用社交名流来设置 facebook 登录 我仔细按照说明进行操作 直到出现以下错误 cURL error 60 SSL certificate problem unable to get local issu
  • 有没有办法防止输入 type=“number” 获得多个点值?

    我只想得到十进制值 如 1 5 0 56 等 但它允许多个点 有什么办法可以预防吗 您可以使用pattern属性
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 对 Action 方法的两个并行 ajax 请求排队,为什么?

    我正在使用 ASP NET MVC 开发一个视频网站 我希望在我的应用程序中拥有的一项功能是转码视频 但由于转码过程可能非常耗时 我想向客户端用户展示该过程的进度 因此 我的架构是使用一个控制器操作来处理整个转码过程 并将其进度写入存储在服
  • 在网络托管上发布后,php 会话无法正常工作

    我的网站在本地主机上运行良好 但是一旦我将其部署到我的托管服务 会话就会停止工作

随机推荐

  • Windows 上安装 Network-2.4.2.2 错误

    当尝试在 Cabal 沙箱 1 18 内的 Windows Server 2008 上安装网络包 cabal 安装网络 时 出现以下错误 C Users user Project gt cabal install network prefi
  • 输出自定义数据类型列表的内容

    我有一个自定义数据类型Movie String Int String Int 电影名称年份 粉丝 评分 并想做几件事 首先 我想创建一个函数 对元组列表中的整数进行平均并仅输出该数字 到目前为止我有这个不完整的功能 avgRating Da
  • Git 中“添加到索引”的真正含义是什么?

    我有一个关于 Git 基础知识的问题 基本上 Git 中 添加到索引 的操作是什么意思 我是这样理解的 如果 git 对任何文件计算 SHA 1 总和 那么基本上添加到索引意味着它计算 SHA 1 总和并将文件添加到暂存区域 我对么 一个有
  • 更新了重新验证用户身份的方法

    我一直在寻找Firebase 文档并找到了重新验证用户身份的方法 如下所示 let user Auth auth currentUser var credential AuthCredential Prompt the user to re
  • 如何清除 stringio 对象?

    我创建了一个 stringio 对象 里面有一些文本 我想清除它的现有值并重用它而不是召回它 有办法这样做吗 TL DR 不用费心清除它 只需创建一个新的 这样更快 方法 Python 2 以下是我如何发现这些事情的方法 gt gt gt
  • 类似vlookup的功能:为什么我的indexOf不起作用?

    如果我想匹配这个词 我需要找到它与
  • 如何在WampServer中配置CakePHP的.htaccess文件?

    我对在 CakePHP 中运行我的示例必须做什么感到非常困惑 我正在使用 WAMP 服务器 它位于 C program files wamp 中 我为我的项目使用另一个分区 E Projects 有一个用于学习 CakePHP 的文件夹 E
  • PHP 使用 array_search 查找数组中某个单词的第二次出现

    下面的代码将分割一个句子并告诉我单词 orange 的第一次出现 您能告诉我是否可以使用 php 库函数找到单词 orange 的第二次出现吗 我可以通过使用来做到这一点for loop 只是想知道是否array search库函数可以做到
  • Bootstrap 弹出窗口中的 HTML 标签不会呈现

    我遇到了一个问题 我无法弄清楚为什么弹出窗口内的 HTML 标签不会被渲染 JS在这里摆弄 http jsfiddle net 792xcgju a href class btn btn primary Popover Example a
  • Python Pandas 如果不在值范围内则替换值

    如果每个值不在特定值范围内 我想替换列中的所有单元格 例如 值范围在 0 到 10 之间 该函数应将 np NaN 放在所有低于 0 或高于 10 的单元格上 我尝试过这个 df loc df B lt 5 B np NaN 但它仅适用于特
  • 动态导入未知组件 - NextJs

    我想根据路线动态加载组件 我正在尝试制作一个可以加载任何单个组件以进行测试的页面 然而每当我尝试做import path 它显示加载程序但从未实际加载 如果我硬编码完全相同的字符串path包含然后它工作正常 是什么赋予了 如何让nextjs
  • ' 无法用于索引类型错误' aria-label='Typescript 'keyof InstanceType' 无法用于索引类型错误'> Typescript 'keyof InstanceType' 无法用于索引类型错误

    这是示例代码 class Base function fn
  • EPOLLET 的用例是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 epoll在边缘触发模式下是一个奇怪的野兽 它要求进程跟踪每个受监控 FD 的最后响应是什么 它要求进程必须处理所报告的每个事件 否则我们可能会认为 FD 没有报告任何内容 而实际上它已被
  • Eclipse 高亮匹配括号

    我看到很多关于匹配括号的帖子 但不太喜欢括号 在 Eclipse 中如何获得匹配的括号来突出显示 我正在使用java 和groovy 工作 在 eclipse 内的 Java 编辑器中打开任何 Java 文件 将插入符号放在左括号或右括号之
  • 如何检测用户的语言(简单的方法)[重复]

    这个问题在这里已经有答案了 可能的重复 用于检测浏览器语言偏好的 JavaScript 我尝试使用以下 js 代码来检测用户语言 但每种方法都会导致undefined 我的用户以两种语言使用该系统EN FA 我可以通过 javascript
  • 在 Java 8 中是否有更简洁的方法来执行此操作 - 地图操作

    对集合映射的一个非常常见的操作是 当键不存在时创建一个具有初始值的新集合 或者如果键存在 则对现有集合执行某些功能 举个例子Map
  • 获取对实体框架中的对象所做的所有更改

    有没有办法在保存所有更改之前获取对实体框架中的对象所做的所有更改 原因是我想在我们的客户数据库中创建一个日志表 so 有没有办法在保存更改之前获取当前数据库值 旧 和新值 当前 如果没有 我怎样才能以通用的方式实现这一点 以便我的所有视图模
  • 使用 .htaccess“欺骗”404 未找到错误

    我目前已将 htaccess 设置为通过以下方式将没有句点或斜杠的任何内容重写为具有 php 扩展名的等效内容 因此 foo 在内部拉起 foo php RewriteCond REQUEST FILENAME f RewriteCond
  • 使用多个键合并Python字典列表

    我想使用多个键合并两个字典列表 我有一个包含一组结果的字典列表 l1 id 1 year 2017 resultA 2 id 2 year 2017 resultA 3 id 1 year 2018 resultA 3 id 2 year
  • 如何使用 onclick 事件将 Javascript 变量传递到 PHP

    我正在尝试将 JavaScript 变量传递给 PHP 以便我可以创建一个 MySQL 查询来返回单个记录 用户将输入一个搜索字符串 无论有多少记录都包含匹配的字符串 该搜索字符串都会返回 然后用户将选择他们想要查看的单个记录 这是我的 H