2013-12-04 2 views
0

Ok, так что это мой следующий Javascript код:Загрузка javascript() с данными, как захватить params в PHP?

$('#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 
     }); 

Все ид, имя и т.д. имеет значения, присвоенные ранее в 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); 

и т.д. и т.д. и т.п. ... Он выдает ошибку, говоря:

Uncaught Error: Syntax error, unrecognized expression: Example Inc&logo=http%3A%2F%2Fstuff.blah.localhost%2Flisting%2Flogo%2glarb.png&address=123 Any Street N&city=Anytown&state=OH&zip=44123&phone=3305551234&[email protected]&web_link=http%3A%2F%2Fexample.com%2F&distance=16.85833142631359

+1

Возможно, вы захотите обобщить данные в приведенной выше примерной ошибке, так как это реальные данные. – Derek

+0

@Derek - Большое время. ОП - я сделал это для вас по этому поводу. –

ответ

2

Вы найдете данные в $_POST. Из load documentation:

Request Method

The POST method is used if data is provided as an object; otherwise, GET is assumed.

Поскольку вы предоставляете данные как объект, JQuery использует POST.

Whenever I manually type it like so...It throws an error

Да. Если вы предоставите строку, вы должны указать допустимую строку запроса, но строка, которую вы указали, не является допустимой строкой запроса. В общем, придерживайтесь обозначений объектов, но если вам нужно для создания такой строки, используйте encodeURIComponent, чтобы убедиться, что значения закодированы правильно.

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

Технически, как ключ и значение должно быть закодировано:

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

... но если ваши ключи состоят исключительно букв a-z (нижний или верхний регистр), то закодированная форма точно такая же, как и необработанная, поэтому вы можете пропустить ее.

+0

Thank youuuuuuuu !! – Peanut

Смежные вопросы