使用javascript加载发布多个变量

时间:2014-05-27 07:41:34

标签: javascript variables post load

我想用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++;});

并且,它不起作用。知道怎么样?谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

  

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

是的,你可以这样做。如果您将对象提供给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"];

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