将 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 脚本

获取 Javascript 变量并将其传递给 PHP 函数 [重复]

如何将js的变量在php中使用

将Array从JS传递给PHP并创建SESSION变量