2015-04-24 1 views
2

Я храню различные значения в sessionStorage во время более длительного процесса. В конце я хочу прочитать все данные и отправить их на мой php-сервер с помощью ajax. Проблема в том, что php, кажется, принимает каждое значение, включая кавычки. Вот что я получил:Удалить цитаты при чтении с sessionStorage и отправке на php с помощью jquery

// Reading data from storage 
var imgb = sessionStorage.getItem("img_b_id"); 
.... 
// perpare data 
var oData = { 
      imgb: imgb, 
      ... 
}; 

// Sending data 
$.post("../php/direct/create.php", oData).done(function(data) { 
    if(data==true) { 
     window.open("step5.php", "_self"); 
    } else { 
     alert("Error: " + data.toString()); 
    } 
}); 

Это прекрасно работает. Однако php будет читать значение imbg с котировками. Пример:

echo $_POST['imgb']; 
/* Returns "asd" instead of asd 

На рисунке ниже показано, что мои данные хранятся без кавычек (скриншот хром sessionstorage) enter image description here

Есть ли у вас какие-либо предложения о том, как решить эту проблему. Я в настоящее время заменить кавычки, но я хотел бы, чтобы решить эту проблему, в это корень ...

+0

Почему не магазин/отправить данные в виде JSON строки? – hindmost

+0

Shoud imgb: ** imbg ** be imgb: ** imgb **? – user2182349

+0

Да, конечно - sry imbg = imgb в фактическом коде. Как и почему я должен отправлять его как строку json? как сказано, фактические данные намного больше и состоят из многих переадресаций, ссылок на страницы и т. д. Моя единственная проблема - это цитаты –

ответ

1

Я попробовал ваш код (с Firefox и Chrome) и

echo $_POST['imgb']; 

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

sessionStorage.setItem("img_b_id", 100); 

Значение принимается на сервере с помощью PHP как строки, так что вы можете преобразовать его с PHP функций intval(), floatval() и т.д. .

http://php.net/manual/en/function.intval.php