2015-11-25 3 views
-1

Я пытаюсь вызвать Ajax на одной странице без события щелчка, я получаю следующее сообщение об ошибке:Вызов Ajax на той же странице

Notice: Undefined index: name in index.php on line

Он прекрасно работает с событием щелчка. Я пытаюсь сделать это без каких-либо событий. Моя цель - передать переменную JavaScript в PHP.

<script> 
     $(document).ready(function(){ 
      alert('est123'); 
      $.ajax({ 
       type: 'POST', 
       url: 'index.php', 
       data: ({name:"test"}), 
       cache: false, 
       success: function(data){ 
        $('#results').html(data); 
       } 
      }) 
      return false; 
     }); 
</script> 

</head> 
    <body> 
     <a href='#' class="idname">click me!</a> 
     <div id="results"></div> 
     <div><?php echo $_POST['name'] ?></div> 
    </body> 
</html> 
+1

Вы должны использовать отдельную страницу для обработки данных, иначе вам может понадобиться куча условий. Я рекомендую отправлять почтовые данные в PHP, который должен «echo json_encode ($ assocArray);« вернуться к вашему методу «Успех» AJAX. – PHPglue

+0

Попробуйте просто 'data: {name:" test "}'. Я не эксперт jQuery (или javascript, если на то пошло), но я не видел скобок вокруг объекта в 'data' части'. .axax', как будто у вас есть это в любой документации jQuery ... хотя снова. ..no эксперт !!! Я, может быть, ошибаюсь и узнаю что-то новое. – Rasclatt

+0

@PHPglue + 1 @ отдельная страница. для чего был бы $ assocArray? – Terminus

ответ

0

Проверьте, чтобы увидеть, если он существует, прежде чем выводить его

if (isset($_POST['name'])) { echo $_POST['name'] } 

, но я не думаю, что это то, что вы хотите, чтобы это произошло, так как вы будете вставлять HTML документ возвращается на страницу.

+0

спасибо, но это не то, что я ищу, проблема в том, что $ _POST ['name'] не задан, но он вызывается, когда страница загружается @eepascarello – mike2828

+0

Конечно, он не устанавливается, когда страница загружается. ... Когда он загружен, сообщение не было отправлено на страницу. Код будет запущен .... – epascarello

+0

любые предложения, как исправить его @epascarello – mike2828

0

Я думаю, что это может вам помочь.

<script> 
     $(document).ready(function(){ 
      dataArray={name:"test"}; 
      $.ajax({ 
       type: 'POST', 
       url: 'index.php', 
       data: dataArray, 
       cache: false, 
       success: function(data){ 
        $('#results').html(data); 
        $('#lblName').html(dataArray.name); 
       } 
      }) 
      return false; 
     }); 
</script> 

</head> 
    <body> 
     <a href='#' class="idname">click me!</a> 
     <div id="results"></div> 
     <div id="lblName"></div> 
    </body> 
</html>