【问题标题】:The best way passing value from jQuery to PHP将值从 jQuery 传递到 PHP 的最佳方式
【发布时间】:2016-02-12 15:41:24
【问题描述】:

我想知道如何将值从 Jquery 传递到 PHP。我发现了类似的代码,但其中一个都不起作用。 每次警报都会显示变量的值,但是当我打开站点时却没有。 Var_dump 显示 $_POST 为空。我已经没有想法了,你有什么想法吗?

jQuery 代码:

$("#password-button").click(function(){
 var password="";
 var numbers =[0,0,0,0,0,0];
 for(var i=0;i<=5;i++){
    numbers[i] = Math.floor((Math.random() * 25) + 65);
    password += String.fromCharCode(numbers[i]);
 }
   $(".LoginError").text("Nowe haslo: " + password);

  $.ajax({
                    type: 'post',
                    url: 'dzialaj.php',
                    data: {'password': password},
                    cache:false,
                    success: function(data)
                    {
                        alert(data);
                         console.log(result)
        console.log(result.status);
                    }
                });

});

PHP:

if(isset($_POST['password'])){
$temp = $_POST['password'];
echo $temp;
}

【问题讨论】:

  • 请在此处发布您的代码,以便为未来的 SO 访问者保留。
  • 使用 AJAX 将数据从 Javascript 传递到 PHP。对于这样一个模糊的问题,很难再有任何帮助了。
  • AJAX 是您将值从 jQuery 传递到 PHP 的方式。
  • AJAX 是解决方案
  • 你在哪里设置result?建议您也将POST 用于您的type。正如@Fred-ii- 所说,使用控制台

标签: php jquery


【解决方案1】:

既然您似乎是 ajax 新手,让我们尝试一些更简单的方法好吗?检查这个js

<script>
var string = "my string"; // What i want to pass to php

 $.ajax({
    type: 'post', // the method (could be GET btw)
    url: 'output.php', // The file where my php code is
    data: {
        'test': string // all variables i want to pass. In this case, only one.
    },
    success: function(data) { // in case of success get the output, i named data
        alert(data); // do something with the output, like an alert
    }
});
</script>

现在我的 output.php

<?php

if(isset($_POST['test'])) { //if i have this post
    echo $_POST['test']; // print it
}

所以基本上我有一个js 变量并在我的php 代码中使用。如果我需要回复,我可以从 php 得到它,然后像变量 data 一样将它返回给 js

到目前为止一切正常吗?伟大的。现在用您当前的代码替换上面提到的js。在运行ajax 之前,只需执行console.logalert 来检查变量password 是否符合您的预期。如果不是,您需要检查您的jshtml 代码有什么问题。

这是我认为您正在尝试实现的示例(不确定我是否理解正确)

编辑

<script>
var hash = "my hash";

 $.ajax({
    type: 'post',
    url: 'output.php',
    data: {
        'hash': hash        },
    success: function(data) {
        if (data == 'ok') {
            alert('All good. Everything saved!');
        } else {
            alert('something went wrong...');
        } 
    }
});
</script>

现在我的 output.php

<?php

if(isset($_POST['hash'])) {
    //run sql query saving what you need in your db and check if the insert/update was successful;
    // im naming my verification $result (a boolean)
    if ($result) echo 'ok';
    else echo 'error';
}

由于页面不会重定向到 php,因此您需要在 ajax 中做出响应以了解您的 php 代码的结果是什么(如果成功与否)。

这是我在评论中提到的其他答案:

How to redirect through 'POST' method using Javascript?

Send POST data on redirect with Javascript/jQuery?

jQuery - Redirect with post data

Javascript - redirect to a page with POST data

【讨论】:

  • 非常感谢。这与我的 jQuery 代码的工作方式相同。当您在浏览器中打开 output.php 时,您是否看到值“我的字符串”?问题是我不能,即使使用你的代码
  • 当然不能。如果你直接打开php文件就不会有你在你的js中设置的post。如果您使用 GET 参数,则同样的事情。这个 ajax 的目的是使用你的 js 脚本,你也可以运行你的 php 代码。如果你要直接访问 php 你可能不需要 js 部分。
  • 如您所见,php 文件仅在有人使用预期的 post 参数打开文件时才有效。就像js一样。
  • “如果你直接打开php文件,就不会有你在js中设置的帖子”。即使我先用javascript打开窗口?我认为它的工作原理:用户打开站点,单击按钮,生成一些随机字符串,发送到 php,用户打开新窗口(这次使用此 php 代码)并查看此生成的字符串。我说的对吗?
  • 它不是那样工作的。更像是:用户打开一个站点 > 用户填写表单并单击提交 > js 被触发并获取输入 > js 将 ajax 调用到 php 代码 > php 代码使用给定的信息做它需要做的事情并可以输出对 js 的响应 > js 获取响应并显示给用户(如果是这种情况) > 用户不必离开页面即可获得表单的响应。
猜你喜欢
  • 2019-01-30
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多