Получить идентификатор для публикации в ajax - PullRequest
0 голосов
/ 22 декабря 2018

Мне нужна помощь с моим кодом, так как у меня возникла проблема с определением переменной для публикации их в Ajax.Я работаю над PHP, так как извлекаю данные из базы данных mysql для ввода информации в PHP, поэтому я хотел бы опубликовать идентификатор в ajax.

Я определил переменную $autoid вне цикла while, но я не могу определить их, когда использую jquery, потому что он покажет пустые данные, когда я попытаюсь опубликовать их в Ajax.

Когда я пытаюсь это сделать:

var ID = $(this).data('deleteid');

$.ajax({
  type: 'POST',
  url: "sendtest.php",
  data: {ID : "deleteid"
  },

  success: function(resultData) {
    alert(resultData)
  }

Вот полный код:

<?php
// Initialize the session
session_start();

// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}
else
{
    $link = mysqli_connect('localhost', 'mydbusername', 'mydbpassword', 'mydbpassword');
    $param_username = $_SESSION['username'];
    $autocampaign = $_SESSION["auto_campaign"];
    $autor_sql = "SELECT id, subject, day_cycle, enabled, delaysend FROM auto WHERE campaign ='$autocampaign' AND username ='$param_username'";
    $autoid = '';

    $results = mysqli_query($link, $auto_sql);

    if (mysqli_num_rows($results) > 0) 
    { 
        while ($row = mysqli_fetch_array($results))
        {
            $autoid = $row["id"];
            $autosubject = $row["subject"];
            $autodaycycle = $row["day_cycle"];
            $autoenabled = $row["enabled"];
            $autodelay = $row["delaysend"];
        }
    }
?>

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<style type="text/css">


.calendar-content {
    float: left;
    width: 100%;
    min-height: 112px;
    border: 1px solid #ccc;
    position: relative;
    margin-top: -1px;
}
</style>


<div class="calendar-content">
  <div style="margin-left: 40px;margin-top: 20px; height: 40px;">
    <span id="autosubject" style="font-size: 25px;color: #0c7ac0;float: left;">Subject: <?php echo $autosubject ?> </span><br>
    <div style="margin-left: 35px; margin-top: 15px; height: 40px;">
      <form action="" method="post">
        <span style="font-size: 15px; color: #ccd5d9; float: left; margin-top: -1px"><a name="autoid" id="autoid" href="#contactModal" role="button" data-toggle="modal">Send a test</a> | <a name="deleteid" id="deleteid" href="/auto/delete_auto.php?id=<?php echo $autoid; ?>"> Delete </a> | Copy to Draft | Settings</span>
      </form>
    </div>
  </div><br>

  <!-- email Modal -->
  <div id="contactModal" class="modal fade" style="margin-top: 12%;" tabindex="-1" role="dialog">
    <div class="modal-dialog">
      <!-- Modal content-->
      <div class="modal-content" style="height: 250px;">
        <div class="modal-header" style="margin-bottom: 10px;">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h3 class="modal-title">Send A Test Email</h3>
        </div>
        <div class="modal-body" style="height: 65%;">
          <form action="" method="post">
            <label class="label-control" value="">Send test message to email address:</label>
            <select name="emails" id="emails" value="" style="width: 400px; margin-top: 10px; margin-bottom: 18px; margin-left: 60px;">
              <option selected="selected" value='title'>Title</option>";
            </select><br>
            <button name="send_email" id="send_email" type="submit" class="btn btn-primary" style="margin-left: 36%;" data-auto-id="<?php echo $autoid; ?>">Send Test</button>
          </form>
        </div>
      </div>
    </div>
  </div>


<script type="text/javascript">
$(function() {
  $('#send_email').click(function(e) {
    $(this)
      .html("<span><i class='fa fa-spinner fa-spin'></i> Sending...</span>")
      .prop("disabled", true);
    var ID = $(this).data('deleteid');

    $.ajax({
      type: 'POST',
      url: "sendtest.php",
      data: {ID : "deleteid"
      },

      success: function(resultData) {
        alert(resultData)
        $('#contactModal').modal('hide');
        $("#send_email")
          .html("Send Test")
          .prop("disabled", false);
      }
    });
  });
});
</script>
<?php
}
?>

Вот sendtest.php:

<?php
// Initialize the session
session_start();

// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;

}
else if(isset($_POST))
{
    $id = $_POST[$autoid];
    echo "hello your id is...";
    echo $id;
}
?>

Что яЯ хочу достичь, когда я нажимаю на отправку тестовой гиперссылки, появляется модальное окно, и когда я нажимаю на кнопку после выбора в раскрывающемся списке, я хочу получить идентификатор из гиперссылки Удалить, чтобы я мог опубликовать их в ajax,Причины, по которым я хочу разместить идентификатор в ajax, заключаются в том, что я хочу остаться на той же странице, пока я хочу получить информацию из базы данных mysql.

Не могли бы вы показать мне пример того, как я могу получитьИдентификатор из гиперссылки Удалить, чтобы опубликовать их в ajax?

Спасибо за понимание того, что я пытаюсь сделать.

1 Ответ

0 голосов
/ 23 декабря 2018

В вашем коде есть несколько проблем:

1-е: data: {ID : "deleteid"}, должно быть data: {ID : ID }, (вы хотите отправить переменную, а не строку "deleteid")

2-е:var ID = $(this).data('deleteid'); должно быть var ID = $(this).data('auto-id');, поскольку атрибутом данных является data-auto-id = "...

3rd: $id = $_POST[$autoid]; выдаст ошибку (неопределенная переменная) и уведомление (неопределенный индекс). Должно быть $id = $_POST['ID'], потому что здесь вы называете параметр "ID": data: {ID : varname},

4-й: здесь вам не хватает ;: alert(resultData)

Вот исправленноеajax-part:

var ID = $(this).data('auto-id');
$.ajax({
  type: 'POST',
  url: "sendtest.php",
  data: {ID : ID },

  success: function(resultData) {
    alert(resultData);
    $('#contactModal').modal('hide');
    $("#send_email")
      .html("Send Test")
      .prop("disabled", false);
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...