2013-04-16 2 views
3

У меня есть HTML формы с кнопкой, на которой существует OnClick событиеPHP массив возвращает нуль

<form id = "abc" action = "xyz.php" method = "post"> 
     <input type="button" name="submitButton" value="Submit" 
      id="submitButton" onclick = "Function()"> 
    </form> 

В коде JS, я пытаюсь отправить значение текстового поля и пытаюсь получить массив от PHP через json_encode.

var valueToSend = $('#textbox').val(); 
var imagesReturned = new Array(); 
$.ajax({ 
     url: "xyz.php", 
     type: "POST", 
     data: valueToSend, 
     dataType:"json", 
     success: function(result) {   
      var data = jQuery.parseJSON(result); 
      alert(data); 
     } 
    }); 

А вот мой PHP код,

 if(isset($_POST['valueToSend'])) 
     { 
      $searchValues = explode(' ',$_POST['valueToSend']); 
      // Some processing here 
      echo (json_encode($responseArray)); 

     } 

Когда я предупрежу данные, я получаю пустой, Что мне не хватает?

Спасибо!

+1

Что '$ responseArray' содержит? – Shoe

+0

Его массив строк. Например, он содержит abc, xyz, pqr и т. Д. – user1821499

+0

Добавьте точку останова в строке, используемой 'parseJSON', и посмотрите, является ли результат« result »ожидаемым. –

ответ

0

Проблема была в коде PHP.

Я снял чек, если (Исеть ($ _ POST [ 'valueToSend'])) и его работы ...

3

Проблема заключается в вашем запросе Ajax, ключ data ожидает пару ключ/значение, а не только значение.

Что вы ищете что-то похожее на следующее:

var valueToSend = { 
    'valueToSend': $('#textbox').val() 
} 

Кроме того, вы устанавливаете ключ dataType в json, поэтому нет необходимости передавать переменные данные через parseJSON. Таким образом, функция success нужно только быть объявлена ​​следующим образом:

'success': function(result) { 
    alert(result); 
} 
+0

Также обратите внимание, что поскольку вы устанавливаете 'dataType:" json "', вам не нужно анализировать ответ, jQuery сделает это для вас так, что вы сможете работать с результатом объект напрямую. –

+0

вы абсолютно правы, я буду обновлять. спасибо за то, что поймал это :) –

1
var valueToSend = $('#textbox').val(); 
var imagesReturned = new Array(); 
$.ajax({ 
     url: "xyz.php", 
     type: "POST", 
     data: {"valueToSend":valueToSend}, 
     dataType:"json", 
     success: function(result) {   
      var data = jQuery.parseJSON(result); 
      alert(data); 
     } 
    }); 

исправить формат data в AJAX

+0

Если я поменяю данные на \t \t данные: {valueToSend: valueToSend}, Функции возвращают ошибку, она не входит в функцию успеха. – user1821499

1
поля

данные вашего подозрительный мне

$.ajax({ 
      url: "xyz.php", 
      type: "POST", 
      data:{valueToSend:valueToSend}, 
      dataType:"json", 
      success: function(result) {   
       alert(result); 
      } 
     }); 
+0

К сожалению, изменение поля данных не работает, оно попадает внутрь ошибки, чем функция успеха, если я отправляю пару ключ: значение. Если я отправлю только значение его успеха с нулевым ответом! – user1821499

+0

см. Отредактированный код и скажите мне, что он предупреждает сейчас? –

+0

Он ничего не предупреждает, если я добавлю код для функции Error: function, он входит в это. – user1821499

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