【问题标题】:post multiple variables with javascript load使用 javascript 加载发布多个变量
【发布时间】:2014-05-27 07:41:33
【问题描述】:

我想用 load 函数发布一些变量。代码就是这样。

var database = "<?php echo $db;?>";
var table = "<?php echo $table;?>";
var formdata = "&dbname="+database+"&tablename="+table;
var track_click = 0; //track user click on "load more" button, righ now it is 0 click
$('#results').load("showdataprocess.php", {'page':track_click , formdata }, function() 
{track_click++;});

而且,它不起作用。知道怎么做吗?之前谢谢。

【问题讨论】:

    标签: javascript variables post load


    【解决方案1】:

    我想用加载函数发布一些变量...

    是的,你可以这样做。如果您向load 提供一个对象作为其第二个参数,load 将使用 HTTP POST 而不是 HTTP GET

    ...它不起作用。

    如果您查看 Web 控制台,您会看到指出语法错误的错误

    $('#results').load("showdataprocess.php", {'page':track_click , formdata }, function() 
    {track_click++;}); //                                                   ^
    // Here ----------------------------------------------------------------/
    

    你要么传递一个字符串,要么传递一个对象。在您的情况下,最简单的事情(也可以正确编码)是完全摆脱您的 formdata 变量并将所有三条信息放在您作为第二个参数传递的对象中:

    var database = "<?php echo $db;?>";
    var table = "<?php echo $table;?>";
    var track_click = 0; //track user click on "load more" button, righ now it is 0 click
    $('#results').load("showdataprocess.php", {
        page: track_click,
        dbname: database,
        tablename: table
    }, function () {
        track_click++;
    });
    

    然后访问$_POST 对象上的那些,例如:

    $dbname = $_POST["dbname"];
    

    但是:除非您有非常非常好的理由,否则不要将有关您的数据库的信息发送给客户端!这暴露了太多的基础设施。在服务器端保存该信息,不要将其发送给客户端并让客户端将其发回。

    【讨论】:

    • 我尝试使用echo$_GET['tablename']; echo $_GET['page']; echo $_GET['dbname']; 进行检查,但它返回此错误消息。 “注意:未定义的索引:第 155 行的 D:\xampp\htdocs\rts3\sgcdm\mudjiono\showdataprocess.php 中的表名”还有另一种检索值的方法吗?
    • @user3615709:我的错误,如果你将一个对象作为第二个参数传递给load,它会执行POST,而不是GET。我已经更新了答案。
    【解决方案2】:

    您不能将键/值字符串数据与 .load() 的对象混合。更改为传递对象中的所有数据。

    $('#results').load("showdataprocess.php", {'page':track_click , dbname : database, tablename : table}, function() 
    

    可以将字符串作为整个数据传递,但.load() 将执行 GET 请求而不是 POST。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      相关资源
      最近更新 更多