Попытка использовать AJAX для захвата параметра функции и перехода к коду PHP

У меня есть ввод HTML с функцией и параметром, установленным для него так

<input onclick='myFunc($count)' type='button' value='ClickMe'>;

У меня также есть ссылки на сценарии JQuery и мой файл сценариев.

  <script src = "jquery.js"></script>
  <script src = "myscript.js"></script>

Внутри моего файла myscript.js у меня есть содержимое как таковое

function myFunc(x) {
 alert(x);

 $(document).ready(function() {
    $.ajax({
            url: "myphp.php",
            method: "post",
            data: { param1: "x" },
            dataType: "text",
            success: function(strMessage) {

            }
      })
})   

}

Вот мой файл myphp.php

<?php

    $param1 = $_GET['param1'];
    echo $param1;
?>

Как вы можете видеть в файле javascript, у меня есть alert(x); чтобы проверить, что функция захватывает переменную $count и до сих пор работает (правильное значение появляется в окне предупреждения). Однако я хочу передать этот параметр x PHP-скрипту, но мой PHP-скрипт ничего не выводит, я предполагаю, что строка, в которой у меня есть param1, неверна. Какие-нибудь советы?

удалите кавычки из данных: {param1: "x"} в вашем javascript и добавьте alert(strMessage); внутри фигурных скобок success: function( strMessage ) { }.

JasonB 28.03.2019 08:03

Я выполнил ваши инструкции и удалил предупреждение (x); функция под myFunc(), и когда я нажимаю кнопку, я получаю предупреждение, но ничего внутри предупреждения. Это будет означать, что либо параметр не передается в AJAX и/или PHP? Довольно сложно проверить, вызывает ли AJAX файл PHP из веб-браузера.

whatitiswhatsup 28.03.2019 08:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
61
3

Ответы 3

В вашем вызове AJAX вы используете метод POST, поэтому, чтобы поймать переменную в PHP, вам нужно получить к ней доступ из $_POST:

<?php
   $param1 = $_POST['param1'];
   echo $param1;
?>

Вы делаете XHR методом POST

method: "post",

и вы ищете его в массиве GET

$_GET['param1'];

Измените либо на отправку, либо на получение (с учетом вашего сценария), и вы должны быть в порядке.

Узнайте больше здесь, чтобы узнать о различных методах отправки HTTP-запросов: https://www.guru99.com/php-forms-handling.html

Вы используете метод post в AJAX, но пытаетесь получить значение в $_GET, что неверно.

В вашем PHP-коде просто замените $_GET['param1'] на $_POST['param1'], и все заработает.

или Если вы хотите использовать $_GET в своем PHP-коде, измените метод в AJAX или используйте $.get. Примеры можно найти на W3School. https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

Другие вопросы по теме