【问题标题】:jquery Post value to PHP webpagejquery 将值发布到 PHP 网页
【发布时间】:2017-03-07 05:36:29
【问题描述】:

我制作了一个带有下拉菜单的网页。这个想法是,当我们单击下拉菜单的任何选项时,它会打开带有 POST 参数“edicion”的 produccion.php。我用这个参数在数据库中进行查询。

目前的问题是它打开了 produccion.php 但我认为这不会发布变量的值

jQuery 代码:

    $('#drEdicion a').click(function(event){
        alert($(this).text());

        var ed = $(this).text();

        $.ajax({  
            url:"produccio.php",  
            type:"POST",  
            data:{edicion: ed},  
            dataType:"text",  
            success:function(data){  
                window.location.href = 'produccio.php'
            }  
        });     

    });

问题可能出在通过 ajax 发送时吗?

提前致谢。

【问题讨论】:

  • 首先您将 ajax 发送到 produccio.php,然后再次将页面重定向到 produccio.php...逻辑在哪里?!此外,当您第二次将页面重新编辑到 produccio.php 时,当然没有 POST 数据,因为第二次您没有发送任何 POST 数据:/
  • @nospor 我只需要发送一个时间,怎么做?
  • 删除这个window.location.href = 'produccio.php'
  • 您是否尝试模拟表单POST,但使用超链接而不是提交按钮?
  • 是的,我想在下拉按钮中选择选项后打开 produccion.php。使用此选项,我会进行查询。

标签: javascript php jquery ajax


【解决方案1】:

您的代码当前是POST通过 AJAX 将超链接的内容转移到produccio.php。当该调用完成时,它会将用户重定向到同一页面,但没有 POSTed 值。根据您的评论:

我想在下拉按钮中选择选项后打开 produccion.php。使用此选项,我会进行查询

看来您实际上想在浏览器中打开带有POSTed 值的produccio.php

到目前为止,该问题最简单的解决方案是更改 PHP 代码以接受来自 $_GET["edicion"]edicion 的值,并将您的超链接输出为:

<a href="produccio.php?edicion=...">...</a>

这也将为用户提供更好的体验,尤其是当他们遇到 JavaScript 问题时(或者,例如,碰巧是搜索引擎)。但是,如果您设置为仅使用 $_POST,则以下代码可能 - 我自己没有测试过 - 允许这样做:

$('#drEdicion a').click(function(event){
    event.preventDefault();

    var ed = $(this).text();
    $('<form action="produccio.php" method="POST">' + 
          '<input type="hidden" name="edicion" value="' + ed + '" />' +
          '</form>').appendTo('body').submit();
});

(感谢Dynamically create and submit form 上的最佳答案)

【讨论】:

    【解决方案2】:

    以下代码:

    $('#drEdicion a').click(function(event){
            //alert($(this).text());
            event.preventDefault();
            var ed = $(this).text();
    
            $.ajax({  
                url:"produccio.php",  
                type:"POST",  
                data:{edicion: ed},  
                dataType:"html",  
                success:function(data){  
                    //#dropdown-menu id show all produccio.php data
                    $("#dropdown-menu").html(data);
                }  
            });     
    
    });
    

    produccio.php

    <?php
       $edicion = $_POST['edicion'];
       //now you can able to access edicion post param
    ?>
    

    这样的HTML:

    <div id="dropdown-menu"></div>
    

    【讨论】:

      猜你喜欢
      • 2011-06-26
      • 2014-02-13
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2016-07-23
      相关资源
      最近更新 更多