Использование AJAX для передачи Javascript var в PHP на той же странице - PullRequest
0 голосов
/ 23 июня 2018

Я надеюсь, что это не дубликат, но я не могу найти свой ответ, основываясь на тех, кто задавал подобные вопросы.Вот основы того, что я пытаюсь сделать:

У меня есть страница, которая началась с пустой переменной PHP.Затем, когда пользователь нажимает на ссылку, я хочу передать значение атрибута имени в вар JS, а затем передать этот вар JS на ту же страницу и затем обновить вар PHP с помощью вар JSзначение.Вот простой пример того, что я пытаюсь сделать:

// PHP
<?php
    // Starts empty, then when posted should update
    $jsVar = $_POST['jsVar'];
    echo $jsVar;
 ?>


<!-- HTML-->
<!-- Link to click with name vlue to pull-->
<a href="#" name="link">Click Me</a>


<!-- JAVASCRIPT -->
<!-- Import jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<script type="text/javascript">

    // On link click
    $('a').click(function(e){

        // Prevent link default behavior
        e.preventDefault();

        // Store name vale as jsVar
        jsVar = $(this).attr("name");


        $.ajax({
            type: "POST",
            // url: ""   <--------------- From what I read, if you want to post to the same page you just don't inclue the URL?
            data: {jsVar : jsVar}, // <--------- This was also something I found online that supposedly helps pass JS vars to PHP?
            success: function(data)
            {
                alert("success!");
            }
        });
    });

</script>

Я новичок в PHP и AJAX, поэтому я уверен, что мне не хватает чего-то фундаментального, но на данный момент я не уверен, гдеидти дальше.Спасибо заранее за помощь.

РЕДАКТИРОВАТЬ Я просматриваю комментарии, и многие люди говорят, что мне не нужен AJAX для этого.Приведенный мною пример представляет собой очень похожую версию того, что я пытаюсь сделать, - это динамическое изменение включаемого файла на основе того, что пользователь щелкает элемент боковой панели.Я не хочу использовать форму для этого, не так ли?

1 Ответ

0 голосов
/ 23 июня 2018

Ах!Продолжая смотреть, я обнаружил, что в jQuery есть функция .load (), и это именно то, что я хотел.Dang!Я смог построить это и заставить его работать:

// Store clicked page
var currentPage = $(this).attr("name");
// Build filepath
var currentPagePath = "pages/" + currentPage + ".php";

// Find the div I want to change the include for and update it
$("#pageContent").load(currentPagePath);

Так просто.Dang.Спасибо всем.

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