Home  >  Q&A  >  body text

PHP does not recognize content sent by Ajax

I can't get PHP to read text sent via Ajax.

index.html

<head>
    <!--CSS Bootstrap-->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin=" anonymous">

    <!-- JS -->
    <script src="https://code.jquery.com/jquery-3.6.0.js"
            integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
            integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
            crossorigin="anonymous"></script>

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
          integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
</head>

<!-- Button to trigger modal -->
<button type="button" class="btn btn-primary" id="btnOpen">
    Open demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="modalExample" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
     aria-hidden="true">
    <?php include "modal.php"; ?>
</div>

<script>
    // call the image modal
    $("#btnOpen").click(function () {

       //send the string to the php page
        $.ajax({
            type: 'POST',
            url: '//localhost/slider/modal.php',
            data: 'Test shipping',
        }).done(function () {
            alert('data sent');
        });

        // call the modal window
        $("#modalExample").modal("show");
    });

</script>

modal.php

<div style="text-align: center">
    <?php echo $_POST['data']; ?>
</div>
<div id="carouselExampleIndicators" class="carousel slide" 
     data-ride="carousel">
    <ol class="carousel-indicators">
        <li data-target="#carouselExampleIndicators" data-slide-to="0" 
            class="active"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
        <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner">
        <div class="carousel-item active">
            <img class="d-block w-100" src="img.png" alt="First slide">
        </div>
        <div class="carousel-item">
            <img class="d-block w-100" src="img2.png" alt="Second slide">
        </div>
        <div class="carousel-item">
            <img class="d-block w-100" src="img3.png" alt="Third slide">
        </div>
    </div>
    <a class="carousel-control-prev" href="#carouselExampleIndicators" 
       role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#carouselExampleIndicators" 
       role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>

When I click the button, I get the message Sending data from Ajax, the slider shows no error, but the text in the div where PHP is supposed to read the Post shows the error:

Note: Undefined index: data in...

P粉693126115P粉693126115173 days ago326

reply all(1)I'll reply

  • P粉131455722

    P粉1314557222024-04-03 11:54:27

    You need to send the data as an object. like this:

    $.ajax({
        type: 'POST',
        url: '//localhost/slider/modal.php',
        data: {data: 'Test shipping'},
    }).done(function() {
        alert('data sent');
    });

    reply
    0
  • Cancelreply