Получение массива $ _POST на странице AJAX, которая вызывается из jQuery $ .post (...) - PullRequest
0 голосов
/ 11 февраля 2019

Пожалуйста, посмотрите на это .Я пытался понять код, но у меня возникли проблемы:

$("#submitmsg").click(function(){   
    var clientmsg = $("#usermsg").val();
    $.post("post.php", {text: clientmsg});              
    $("#usermsg").attr("value", "");
    return false;
});
  1. По сути, если вы нажимаете кнопку submit, вы вызываете эту страницу post.php, которая делает все внутри нее, верно?
  2. Вопрос, почему страница post.php на самом деле не загружается, даже когда я удалил return false?Я предположил, что это потому, что в моем form, action = "", что означает, что я в основном перезагружаю ту же страницу.Я прав?
  3. Впоследствии, почему AJAX не загрузил эту страницу post.php, даже если она вызывается в $.post выше?Это потому, что я AJAX на самом деле не загружал страницу, а просто делал все на указанной странице, не перенаправляя мою текущую страницу?

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

Форма ниже:

<form name="message" action="">
        <input name="usermsg" type="text" id="usermsg" size="63" />
        <input name="submitmsg" type="submit"  id="submitmsg" value="Send" />
</form>

post.php страницаниже:

<?
session_start();

    if(isset($_SESSION['name'])){
        $text = $_POST['text'];

        $fp = fopen("log.html", 'a');
        fwrite($fp, "<div class='msgln'>(".date("g:i A").") <b>".$_SESSION['name']."</b>: ".stripslashes(htmlspecialchars($text))."<br></div>");
        fclose($fp);
    }
?>

Есть ли способ получить доступ к вышеупомянутой странице, когда она вызывается (это правильный термин?) jQuery AJAX?Я хочу видеть включенные туда переменные $_POST, когда я запустил jQuery AJAX с помощью echo.

1 Ответ

0 голосов
/ 11 февраля 2019

Прежде всего, ваша форма будет отправлена, потому что вы использовали ввод ввода, и ваш jquery не будет запущен.Вы можете сделать это, используя метод protectDefault , подобный следующему:

$("#submitmsg").on('click', function(e){
  e.preventDefault();
  var clientmsg = $("#usermsg").val();
  $.post("post.php", {text: clientmsg});              
  $("#usermsg").attr("value", "");
  return false;
});

Вы можете увидеть, что происходит в AJAX-файле, используя Chrome Developer Tools (щелкните правой кнопкой мыши> элемент inspect), а затем перейдите на вкладку Network.

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