2014-03-15 3 views
0
function hashValue(ID){ 
       jQuery.ajax({ 
        url: "<?php echo get_template_directory_uri(); ?>/getHashvalue.php", 
        data: {ID:ID}, 
        success: function(res) { 
         alert(res); 
        } 
       }); 
      } 

Вышеупомянутый вызов jQuery Ajax передает идентификатор в качестве параметра успешно.Параметр вызова Ajax не переходит в PHP

Но код PHP не может получить идентификатор, отправленный Ajax.

<?php 
if(isset($_POST['ID'])) 
{ 
    $hashid = $_POST['ID']; 
} 
$hash = hash('sha1', $hashid); 
print_r($hash); 
exit; 
?> 

Ошибка заключается в следующем

(!) Notice: Undefined variable: hashid in G:\wamp\www\wp-content\themes\theme1\getHashvalue.php on line 6 
+0

'print_r ($ _ POST);' * before * и * outside * инструкция 'if'. Имеет ли он идентификатор? –

+0

@AmalMurali - Если это так, будет 'isset ($ _ POST ['ID'])' fail? – adeneo

+0

попробуйте с isset ($ _ REQUEST ['ID']) вместо –

ответ

3

Метод HTTP по умолчанию jQuery.ajax является запрос GET, а не запрос POST.

http://api.jquery.com/jQuery.ajax/

Так что вам нужно проверять $_GET['ID'], а не $_POST.

+0

Это решило мою проблему. Примите его как ответ в ближайшее время. POST защищен, чем GET, возможно ли изменить запрос по умолчанию GET на POST? – harishannam

+2

Yup. Или измените клиентскую сторону, чтобы добавить 'type:" POST "' к параметрам ajax() (или использовать сокращение jQuery [post()] (https://api.jquery.com/jQuery.post/).) –

+0

Да , В вашем вызове 'jQuery.ajax' добавьте параметр' type: 'POST'', как описано в документах, которые я связал. – sevenseacat

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