Javascript load()包含数据,如何在PHP中获取params?

时间:2013-12-04 17:33:47

标签: jquery

好的,这是我的以下javascript代码:

    $( '#listings' ).load( 'ajax/listingFind.php', {
        id: id, 
        name: name,
        logo: encodeURIComponent(logo),
        address: address,
        city: city,
        state: state,
        zip: zip,
        phone: phone,
        email: email,
        web_link: encodeURIComponent(web_link),
        distance: distance
      } );

所有id,name等都具有以前在javascript中分配的值。 但是,在listingFind.php中,如何获取传入的这些数据值? 我将文件加载到div中并回显整个url,似乎数据不会传递到url中。 每当我像这样手动输入它时:

$( '#listings' ).load( 'ajax/listingFind.php?id=' + id + '&name=' + name + '&logo=' + encodeURIComponent(logo) + '&address=' + address + 
          '&city=' + city + '&state=' + state + '&zip=' + zip + '&phone=' + phone + '&email=' + email + '&web_link=' + encodeURIComponent(web_link) + 
          '&distance=' + distance );
等等等...... 它抛出一个错误说:

  

未捕获错误:语法错误,无法识别的表达式:示例   公司&安培;标志= HTTP%3A%2F%2Fstuff.blah.localhost%2Flisting%2Flogo%2glarb.png&安培;地址= 123   任何街道   N'安培;城市=北京市东城&安培;状态= OH&安培;拉链= 44123&安培;电话= 3305551234&安培; email=foo@example.com& web_link = HTTP%3A%2F%2Fexample.com%2F&安培;距离= 16.85833142631359

1 个答案:

答案 0 :(得分:2)

您可以在$_POST中找到数据。来自load documentation

  

请求方法

     

如果数据作为对象提供,则使用POST方法;否则,假设GET。

由于您将数据作为对象提供,因此jQuery正在使用POST

  

每当我手动输入它时......它会抛出错误

是。如果提供字符串,则需要提供有效的查询字符串,但您提供的字符串不是有效的查询字符串。一般来说,坚持使用对象表示法,但是如果您需要来构建类似的字符串,请使用encodeURIComponent来确保正确编码值。

'ajax/listingFind.php?id=' + encodeURIComponennt(id)

从技术上讲,密钥都必须编码:

'ajax/listingFind.php?' + encodeURIComponent('id') + '=' + encodeURIComponennt(id)

...但是如果您的密钥仅包含 字母a-z(大写或小写),则编码形式与原始形式完全相同,因此您可以跳过它