jquery $.post присваивание возвращаемого типа

#javascript #php #jquery

#javascript #php #jquery

Вопрос:

Я использую jquery для отправки ajax-запроса с использованием post в свой php-код. Я хотел бы использовать возвращаемый тип данных, чтобы присвоить его переменной javascript. Как я могу это сделать?

когда я делаю var updatedNumOfPosts = parseInt(данные); он говорит, что updatedNumOfPosts не определено. Я также пробовал var updatedNumOfPosts = data и т.д. Ниже приведен мой код, помощь очень ценится.

функция javascript

  function pagerefresh()
{

$.post("searchPresentation.php", {get_num_posts:"yes"}, function ( data ){


    var udpatedNumOfPosts = parseInt(data); //I would like to assign this variable
   }
}
 

функция php

 if (isset($_POST['get_num_posts']))
{ 
$user = $_POST['user'];
$num =  num_of_posts($user);
echo $num;
}
 

Ответ №1:

Вам не хватает закрывающей скобки функции post, пожалуйста, измените свой код на:

 function pagerefresh()
{
   $.post("searchPresentation.php", {get_num_posts:"yes"}, function ( data ){
     var udpatedNumOfPosts = parseInt(data); //I would like to assign this variable
   });
}
 

Комментарии:

1. Пожалуйста, попробуйте это и дайте мне знать, каков результат для этого: typeof(data). Мне нужно знать тип данных, чтобы мы могли определить, можно ли их использовать с parseInt или нет.

Ответ №2:

$user = $_POST['user']; Передаете ли вы какую-либо пользовательскую переменную?

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

вот так:

 var udpatedNumOfPosts;

function pagerefresh() {
    $.post("searchPresentation.php", {get_num_posts:"yes", user: "somedata"}, function ( data ){
        udpatedNumOfPosts = parseInt(data);
   }
}
 

или есть ошибка: uPDatedNumOfPosts, не uDPated

Обновление: попробуйте также преобразовать объект в строку:

 function objToString (obj) {
  var str = '';
  for (var p in obj) {
    if (obj.hasOwnProperty(p)) {
        str  = p   '::'   obj[p]   'n';
    }
  }
  return str;
}

udpatedNumOfPosts=objToString(data)-0;
 

Комментарии:

1. В частности, вам нужно передать переменную «user» во втором параметре $.post .

2. Я не могу понять, каков возвращаемый тип данных. Я исправил весь синтаксис, хотя updatedNumOfPosts = parseInt(данные) выдает NaN . Я не знаю, как преобразовать заданное значение в целое число

3. @user3769015 не могли бы вы показать содержимое данных? console.log(data) было бы здорово.

4. document.write(данные) выдает 15. Это указывает на то, что в таблице 15 строк

5. Не знаю, что это может быть. Попробуйте updatedNumOfPosts=data-0; вместо parseInt()