将 js 变量发布到未以任何方法运行的 PHP
Posted
技术标签:
【中文标题】将 js 变量发布到未以任何方法运行的 PHP【英文标题】:Posting js variables to PHP not running in any method 【发布时间】:2020-01-20 09:53:22 【问题描述】:在我的 JS 代码中,我在一个 html 页面上输入 3 个输入并将它们保存到本地存储中。然后我想将这些变量发送到 php 以便将它们保存到我的数据库中。无论我多么努力地尝试没有使用 ajax、jquery 等的教程,我都可以在我的 php 代码中成功地从 javascript 发布和回显变量。我看不出为什么我下面的代码没有回显变量,但事实并非如此。
完整代码:https://codeshare.io/ayvK9e
精确的 PHP 元素(现在只是尝试发送普通变量,因为它仍然无法正常工作”
PHP:
foreach($_POST as $post_var)
echo($post_var);
JS:
const xhr = new XMLHttpRequest();
xhr.onload = function()
const serverResponse = document.getElementById("serverResponse");
serverResponse.innerHTML = this.responseText
;
xhr.open("POST", "eDBase.php");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("name=dominic&message=bumbaclaat");
【问题讨论】:
否则HTTP请求是否成功?您的浏览器的开发者工具对此有何看法? 我得到的唯一错误是随机语法错误,表示 eDBase.php.3 处存在意外标记“ 可以给我eDbase.php的代码吗? 试试这个:codeshare.io/aJ4r1r HTML 索引文件:codeshare.io/5Op3EP 【参考方案1】:如果 $post 不起作用,请尝试使用 input php $data = json_decode(file_get_contents('php://input'), true);
【讨论】:
【参考方案2】:当使用输入调用我的函数时 onclick=showFunction;我没有向函数传递任何内容。为了让我的值在 php 中得到回显,我必须将参数传递给函数 onclick=function('text or variable'); IDK 我怎么错过了。
【讨论】:
【参考方案3】:尝试使用FormData()
let form = new FormData();
form.append('name', 'dominic');
form.append('message', 'bumbaclaat');
const xhr = new XMLHttpRequest();
xhr.open("POST", "eDBase.php");
xhr.onreadystatechange = function()
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200)
const serverResponse = document.getElementById("serverResponse");
serverResponse.innerHTML = this.responseText;
else console.log('error')
;
xhr.send(form);
注释掉 setRequestHeader 来测试一下。
在 PHP 中
if(isset($_POST['name']))
echo $_POST['name'];
echo $_POST['message'];
else
echo 'There was a problem';
【讨论】:
您在 if 函数中遗漏了 a ) 和 a ]。除此之外仍然无法正常工作。在控制台中遇到这些错误:gyazo.com/… 如果您可以通读代码,请找到上面的两个文件。 哎呀,是的(更新)。除此之外。检查您之前声明的代码是否有错误。您在屏幕截图中显示的所有错误都与我发布的代码无关。检查您的 php 是否有声明的 php 标签。 并且已经在您的 Javascript 代码中声明了变量 remove from the Head 您不能将这样的 php 文件添加到文档中。单独的请求将与文件连接。 不,他不能这样做@NicolasVlachos,因为该页面中包含html,请参阅我的答案中的php页面,如果他将该文件包含到登录页面中,他将有标题已经发送错误。他在两个 div 中显示结果<p id="email"></p><p id="serverResponse"></p>
我们正在对处理数据库插入的文件执行异步请求。标头与请求本身的关系。在将插入数据的 php 文件中,他将处理请求和附加到表单或表单数据的数据。他想按照他的说法将数据插入数据库,然后将它们显示为响应。您不会检查请求是否确实是 $_POST 类型或 $_POST 参数是否存在,您也不会处理 php 代码中的值。 的错误截图也存在。未捕获的语法错误:意外的令牌 '
以上是关于将 js 变量发布到未以任何方法运行的 PHP的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Web:在 Flutter 运行时在注入的 client.js 脚本中检测到未处理的错误
将视图(php文件)作为字符串传递给yii 2中registerJS中的变量js
无法将变量传递给 PayPal Payments Rest API 的 JS 脚本