AJAX отправить значение от js до php - PullRequest
0 голосов
/ 18 апреля 2020

пытался отправить форму var js на php и выполнить некоторые манипуляции, но я продолжаю получать эту ошибку. Можно ли даже отправить значение через php?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test</title>
    <script
        src="https://code.jquery.com/jquery-3.5.0.min.js"
        integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ="
        crossorigin="anonymous">
    </script>
    <script src="https://ajax.googleapis.com/ajax/libs/d3js/5.15.1/d3.min.js"></script>

</head>
<body>
   <input type="text" name='name'>
    <p id="hey"></p>
   <?php 
     echo $_POST['name'];
   ?>
   <button id='button'>hi</button>
</body>
<script src="index.js"></script>
</html>

$("#button").click(function(){
    $.post("index.php",
    {
      name: "Donald Duck",
      city: "Duckburg"
    },
    function(data, status){
        $("#hey").append(status);
    });
  });

enter image description here

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Я создал один индекс. php Файл здесь это должно работать для вас.

<?php
if ($_POST) {
  echo json_encode(['data' => $_POST['name'], 'success' => true]);
  exit;
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test</title>
    <script
        src="https://code.jquery.com/jquery-3.5.0.min.js"
        integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ="
        crossorigin="anonymous">
    </script>
    <script src="https://ajax.googleapis.com/ajax/libs/d3js/5.15.1/d3.min.js"></script>

</head>
<body>
   <input type="text" name='name'>
    <p id="hey"></p>
    <div id='test'></div>
   <button id='button'>hi</button>
</body>
<script>
  let  data = {
      name: "Donald Duck",
      city: "Duckburg"
    };
$("#button").click(function(){
  $.ajax({
  type: "POST",
  url: 'index.php',
  data: data,
  dataType: 'json'
}).done(function(response) {
      if (response.success) {
        $('#hey').html('success');
        $('#test').html(response.data);
      }
});
});
</script>
</html>
0 голосов
/ 18 апреля 2020

Это не работает, потому что при первой загрузке страницы $ _POST ['name'] не определено. Ваш код javascript не вызывает отправку (= перезагрузка для отправки данных). $ _POST ['name'] никогда не устанавливается, потому что он не будет обновляться на лету. Для этого создайте отдельный файл php, который обрабатывает только данные POST из вашего javascript и возвращает значение.

/* call post.php and add console.log to track data */
$("#button").click(function(){
    $.post("post.php",
    {
      name: "Donald Duck",
      city: "Duckburg"
    },
    function(data, status){
        $("#hey").append(status);
        console.log(data);
    });
  });
<?php
// post.php
if($_SERVER['REQUEST_METHOD'] == "POST") {
  echo $_POST['name'];
}

Это, конечно, очень просто c. Для эффективной коммуникации вы должны изучить форматирование данных, например, в JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...