2016-08-03 2 views
0

я использую Serialize()Jquery типа Строка запроса

Some Event trigger(assume click) 

     var querydata= a=1&b=2&c=3 //jquery printing 
    $.ajax({ 
     url: "script", 
     data: querydata, 
     method: "POST", 
     dataType: "text", 
     success: function(data) { 
      $("#counts").html(data); 
      } 

    }); 

в PHP я могу просто использовать обычный метод столба

a=htmlspecialchars($_POST["a"]); b=htmlspecialchars($_POST["b"]); and so on 

или мне нужно использовать JQuery, чтобы получить строку переменные, а затем отправлять данные в виде массива объектов

Если jquery также является опцией, можете ли вы рассказать мне, как я сделал бы это, довольно новое для jquery, и я действительно хочу это узнать.

+2

'var_dump ($ _ POST)' покажет вам, что РНР прием. и обратите внимание, что jquery с радостью примет массив/объект для 'data' и выполнит необходимые преобразования запроса. вам НЕ нужно вручную самостоятельно создавать строку. 'data: {" a ": 1," b ": 2, ....}' работает отлично. –

+0

аккуратный, но с использованием ajax, как я вижу страницу с моим скриптом ... im guessing Мне нужно отправить var_dump в ответ и распечатать его где-нибудь? @Marc B –

+0

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

ответ

1

Зачем создавать функциональные возможности, которые ваш браузер + PHP уже предоставляет? В вашем случае, если вы действительно должны послать необработанный строку:

var querydata = 'a=1&b=2&c=3'; 
$.ajax({ 
    url: "script", 
    data: querydata, 
    method: "POST", 
    dataType: "application/x-www-form-urlencoded", 
    success: function(data) { 
     $("#counts").html(data); 
    } 
}); 

Вы также можете захотеть, чтобы упростить:

var querydata = {a: 1, b: 2, c: 3}; 
$.post('url', querydata, function(data){ 
    $("#counts").html(data); 
}); 
+0

вещь переменная querydata будет продолжать изменяться, так как загружается 3 (x150 страниц) каждый раз, когда succesfull submit отправляется –

+0

, и каждый раз данные запроса меняются, поэтому я не думаю, что использование встроенного массива будет работать со значениями, abc будет изменяться в зависимости от того, что пользователь выбирает –

+0

Конечно, родные массивы будут работать. Просто зарегистрируйте входное значение пользователя: '{a: $ (': input [name =" inputName "]'). Val()}' – CarlosCarucce