【问题标题】:Send variable to PHP using AJAX使用 AJAX 将变量发送到 PHP
【发布时间】:2016-01-12 10:37:11
【问题描述】:

我有一个变量,我想发送到代码顶部的 PHP 代码,但我不断收到错误消息和 undefineddTotaal 是变量名,它包含一个数字。所有这些代码都在同一页面中,所以我将发布到同一页面。

$('#emailVerzenden').click(function() {
    $.ajax({
        url: "content.php",
        type: "post",
        data: ({
            totaal: dTotaal
        }),
        success: function(msg) {
            alert('Data saved: ' + msg);
        },
        error: function(error) {
            alert("couldnt be sent " + error); 
        }
    });

在我的页面顶部,我有这个代码。我不确定它是否正确,我是新手。

if(isset($_POST['emailVerzenden']))
{
    $totaal = $_POST['totaal'];
    var_dump($totaal);
}

我想要将totaal 数据的值放入$totaal,但这不起作用。数据未发送。我不断收到错误alert()

【问题讨论】:

  • 先定义变量dTotaal。
  • 如果您收到错误 alert(),这意味着服务器端代码未返回 200 OK 响应。检查控制台的网络选项卡以查看响应和错误的确切内容。另请注意,JS 中的字符串连接运算符是+,而不是您在error 处理程序中使用的.
  • @SantoshPatel 它已定义它具有来自 Jquery 中的数学运算的值。当我提醒它时,它起作用了,我也将它用作输出作为价格,唯一的问题是它没有发布。
  • @RoryMcCrossan 在我检查它之前从未使用过“网络”选项卡,但你能给我一个线索,让我知道我应该寻找什么。

标签: php jquery ajax


【解决方案1】:

在您的 PHP 代码中,您正在检查一个变量是否存在以使用另一个变量。对我来说应该是:

if(isset($_POST['totaal']))
{
$totaal= $_POST['totaal'];
var_dump($totaal);
}

【讨论】:

    【解决方案2】:

    您在正确的轨道上,但将 PHP 代码与 jQuery 代码分开,然后您将完全控制异步处理数据。

    index.php

      $('#emailVerzenden').click(function()
            {
                $.ajax
                ({
                    url: "content.php",
                    type: "post",
                    data:{totaal: dTotaal},
                    success: function(msg)
                    {
                        alert('Data saved: ' + msg);
                    },
                    error: function(error)
                    {
                        alert("couldnt be sent ".error); 
                    }
                });
    

    并在你的php文件中首先检查是否设置了$_POST数据

    content.php

     if(isset($_POST))
      { 
        $totaal= $_POST['totaal'];
       var_dump($totaal);
     }
    

    【讨论】:

    • 我的两个代码都在同一个文件 content.php 中,PHP 在顶部,Jquery 在底部。
    • 我明白了,但删除文件顶部的 PHP 代码并将其放入另一个文件 [newfile.php]。不要忘记将 jquery ajax 中的url 更改为url: "newfile.php",
    • 做了,但还是一样,问题出在 ajax 代码上。它根本没有发布任何东西我一直收到错误警报()。
    【解决方案3】:

    提及您想在 html 中发送的数据并给它一个 ID。

     <div id="total"> HERE COMES THE VARIABLE YOU WISH TO SEND </div>
    

    然后通过 ID document.getElementById('total').value 提取 &lt;div&gt; 中的数据,如下所示:

    var total=document.getElementById('total').value;
    
    <script> var total=document.getElementById('total').value;  
      $.post('content.php',
            {'total':total},
            function(response){ 
                if(response == 'YES'){}
              });
    </script>
    

    希望这能解决您的问题。祝你好运!

    【讨论】:

    • 我正在做的数学运算,我想将结果作为变量发送给 PHP,当我提醒它时我得到值 600,但是当我尝试发送它时,它不起作用。跨度>
    • 将值发送到像var total='your result' 这样的变量中,然后像我发送它一样发送。
    • 是的,这就是我想告诉你的,我在 dTotaal 中得到了价值/结果。 soo dTotaal 是值。
    • $.post('content.php', {'dTotaal':dTotaal}, function(response){ if(response == 'YES'){} }); 您将通过$this-&gt;input-&gt;post('dTotaal');在控制器中获取此变量
    【解决方案4】:

    有点像我没有使用 preventDefault() 这就是它不起作用的原因。

    $('#emailVerzenden').click(function(e)
            {
                cms=$('#sCms').val();
                templates= $('#templates').val();
                onderdelen = $('input:checkbox:checked').map(function() {
        return this.value; 
    }).get();
                email = $('#email').val();
                e.preventDefault();
                $.ajax
                ({
                    type: "POST",  
                    url:"test.php", 
                    data:{postEmail : email,postOnderdelen : onderdelen,postCms : cms,postTotaal : postTotaal, postTemplates : templates}, 
                    success: function(rs)   
                    {
                        alert("Data saved:" + rs);
                    },
                    error: function(error)
                    {
                        alert("couldnt be sent" + error); 
                    }
                }); 
                e.preventDefault(); 
            });     
    

    【讨论】:

      猜你喜欢
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 2015-09-30
      相关资源
      最近更新 更多