$ .post не отправлять данные

привет это мой код для page.php

<?php session_start(); ?> <script type="text/javascript" src="js/jquery-1.8.2.js"></script> <script type="text/javascript" src="js/jquery.colorbox.js"></script> <script type="text/javascript" src="js/new-landing.js"></script> <script> var ans1 = "home"; function aa(){ $.post("ajax.php", { "ans": "test" }, function(data){ alert("Posted"); }, "html"); }; </script> <a href="#" id="q1" onClick="javascript:aa();" >click</a> 

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

 <?php session_start(); $te = $_POST['ans']; $_SESSION['demo'] = $te; echo "<pre>".print_r($_SESSION,'/n')."</pre>"; ?> 

когда я нажимаю тег привязки. появится окно предупреждения. но когда я обновляю страницу ajax.php. он показывает ошибку..Notice: Неопределенный индекс: ans in

 C:\xampp\htdocs\healthqueens\hello\ajax.php on line 3 

и печать сеанса также пуста. Array ( [demo] => ) Пожалуйста, если кто-нибудь может показать мне ошибку.

Solutions Collecting From Web of "$ .post не отправлять данные"

но когда я обновляю страницу ajax.php. он показывает ошибку

Похоже, вы хотите установить переменную сеанса при публикации значения и получить переменную сеанса в противном случае:

 <?php session_start(); if (isset($_POST['ans'])) { $te = $_POST['ans']; $_SESSION['demo'] = $te; } echo "<pre>".print_r($_SESSION,'/n')."</pre>"; ?> 

$.post и $.get – это только сокращенные версии более структурированного $.ajax() , поэтому я предпочитаю использовать последний. Дополнительная структура держит меня прямо.

Поскольку вы все равно используете jQuery, я бы перестроил ваш код следующим образом:

 $('#q1').click(function() { var test = "Hello there"; $.ajax(function() { type: "POST", url: 'ajax.php', data: 'ans=' +test+ '&anothervarname=' + anothervarvalue, success: function(recd_data) { alert('Rec'd from PHP: ' + recd_data ); } }); }); 

Обратите внимание, что строка data: это, например, цели и не соответствует вашему коду – просто показывая вам, как передавать переменные на стороне PHP.

Конечно, вышеупомянутое включает удаление встроенного javascript – никогда не хорошая идея – из вашего якорного тега HTML, таким образом:

  <a href="#" id="q1" >click</a> 

Кроме того, на стороне PHP вы можете проверить, что все работает, добавив тест вверху. Соответствуя data: строка в примере кода AJAX, она будет выглядеть так:

ajax.php

 <?php $a = $_POST['ans']; $b = $_POST['anothervarname']; $response = '<h1>Received at PHP side:</h1>'; $response .= 'Variable [ans] has value: ' . $a . '<br>'; $response .= 'Variable [anothervarname] has value: ' . $b . '<br>'; echo $response; 

Важно: обратите внимание на использование echo , а не return , чтобы отправить значения обратно в сценарий AJAX.

Также обратите внимание, что вы должны иметь дело с материалом, возвращаемым с PHP в AJAX success: function ONLY . Если вам нужен доступ к этим данным за пределами success: функция, вы можете вставить данные в скрытый элемент <input type="hidden" id="myHiddenInput"> , например:

 success: function(recd_data) { $('#myHiddenInput').html(recd_data); } 

Вот несколько дополнительных примеров простых конструкций AJAX:

Простой пример

Более сложный пример

Population dropdown 2 на основе выбора в выпадающем списке 1