【问题标题】:Posting js variables to PHP not running in any method将 js 变量发布到未以任何方法运行的 PHP
【发布时间】: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

标签: javascript php html sql ajax


【解决方案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 代码中的值。 的错误截图也存在。未捕获的语法错误:意外的令牌 '
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多