2013-06-10 3 views
0

Я передаю сериализованные данные и переменный, а также для PHP, но я получаю неожиданный маркер «(» ошибки в разделеAJAX перейти на PHP Error

данных, если я вынуть «крышку»: идентификатор_пользователь из секции данных, он работает отлично.

$("#cname").submit(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: 'someurl', 
     crossDomain: true, 
     type: 'post', 
     data: {$("#cname").serialize(), 'lid':userID}, 
     success: function (data) { 
      $("#result").html(data); 
      $.mobile.changePage($('#page-tasklist')); 
     }, 
    }); 
}); 
+0

вам нужно 'crossDomain: true'? –

+0

Да, его отдельному серверу – nshah

+0

Возможно, вы захотите использовать более новую версию jQuery или не-jquery-решения и посмотреть, работает ли она. Я видел код, который раньше искал из-за jQuery (это была устаревшая версия, которую он использовал). Вероятно, это не проблема, но стоит попробовать. – Markasoftware

ответ

2

выход метода .serialize() является строкой, как action=login&UserName=&Password=&Site=Test. Так что попробуйте это вместо этого.

$("#cname").submit(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: 'someurl', 
     crossDomain: true, 
     type: 'post', 
     data: $("#cname").serialize() + '&lid=' + userID, 
     success: function (data) { 
      $("#result").html(data); 
      $.mobile.changePage($('#page-tasklist')); 
     }, 
    }); 
}); 

Кроме того, если вы просто удалить lid: userID из вашего запроса ajax, вы на самом деле еще получите ошибку, потому что {$("#cname").serialize()} недействителен json. Параметр data может принимать либо закодированную строку, как то, что возвращает .serialize(), или объект json.

Следующие 2 примера эквивалентны:

$.ajax({url:'index.php',type:'POST',data:{z:1,y:2}}); 
$.ajax({url:'index.php',type:'POST',data:'x=1&y=2'}); 
+0

Это не работает, моя информация не отправляется должным образом – nshah

+0

Что не отправляет правильно? Я тестировал это и, похоже, работает. Что посылается и что вы ожидаете? –

+0

моя информация не подходит к моему файлу php должным образом, я знаю это, потому что он не хранится в моем db – nshah

0

Попробуйте добавить к переменной, а затем нажмите новый ключ/Вэл.

$("#cname").submit(function (e) { 
    var serializeData = $("#cname").serializeArray(); 
    serializeData.push({'lid':userID}) 
    e.preventDefault(); 
    $.ajax({ 
     url: 'someurl', 
     crossDomain: true, 
     type: 'post', 
     data: serializeData, 
     success: function (data) { 
      $("#result").html(data); 
      $.mobile.changePage($('#page-tasklist')); 
     } 
    }); 
}); 
+0

не работает, моя информация не отправляется должным образом – nshah

+0

Я исправил его сообщение для работы , Содержание нажатия необходимо было изменить. Это должно быть '{name: 'lid', value: userID}' –

+0

oh ok Позвольте мне попробовать это – nshah