通过AJAX / PHP提交URL设置变量不刷新页面,加载变量

Submit URL via AJAX / PHP set variable without refreshing page, load variable

本文关键字:变量 刷新 加载 设置 AJAX PHP 提交 URL 通过      更新时间:2023-09-26

我有一个问题,一些脚本通过AJAX执行一个功能,而不刷新我的页面。我有一个字段供用户输入外部URL,当他们点击提交时,它会弹出一个模态窗口,通过单独的PHP页面(目前是images.php)生成一些信息。当表单实际提交,页面重新加载,并且images.php能够看到index.php?url=什么,但我试图更新页面,而不必刷新。定义变量后需要重新呈现DIV吗?我想这可能就是我的问题所在。

JS

<script type="text/javascript">
$(function() {
$("#newNote").submit(function() {
var url = "images.php"; // the script where you handle the form input.
var noteUrl = $('#noteUrl).val();
$.ajax({
       type: "POST",
       url: url,
       data: {noteUrl: noteUrl},
       success: function(data)
       {
           alert(data); // show response from the php script.
       }
     });
return false; // avoid to execute the actual submit of the form.
});
});
</script>
HTML

<form id="newNote">
<input type="text" class="form-control" id="noteUrl">
<input type="button" class="btn btn-default" id="addNote" data-toggle="modal" data-target="#noteModal" value="Add Note"/>
</form>

PHP(除了表单被提交到this之外,这也包含在modal中,它打开,但在var_dump($postUrl)上返回NULL)

$postUrl = $_REQUEST['noteUrl'];
echo $postUrl;

我肯定在这里错过了一些耀眼的东西,但老实说,我已经尝试了AJAX示例的每一个组合,我可以在这里找到。我是否错过了让PHP获取变量的重要步骤?我需要在某个地方刷新DIV吗?

请帮。

这里是相同代码的一个更整洁的版本,缺少的引号被更正了。

$(function() {
    $("#newNote").submit(function() {
        $('#notePreview').empty();
        var url = "images.php"; // the script where you handle the form input.
        var noteUrl = $(this).find('#noteUrl').val();
        var request = $.ajax({
           type: "POST",
           url: url,
           data: {noteUrl: noteUrl}
        });
        request.done(function(data) {
           $('#notePreview').append(data);
        });
        return false; // avoid to execute the actual submit of the form.
    });
});

将属性name="noteUrl"添加到您的输入

<form id="newNote">
<input type="text" class="form-control" name="noteUrl" id="noteUrl">
<input type="button" class="btn btn-default" id="addNote" data-toggle="modal" data-target="#noteModal" value="Add Note"/>
</form>

您还可以执行var_dump($_REQUEST);以查看正在发送的请求变量

您可能错过了noteUrl作为名称。试着给出如下名称,并使用相同的名称获得它。在您的情况下是noteUrl

<form id="newNote">
<input type="text" class="form-control" name="noteUrl" id="noteUrl">
<input type="button" class="btn btn-default" id="addNote" data-toggle="modal" data-target="#noteModal" value="Add Note"/>
</form>

var noteUrl = $('#noteUrl).val();

var noteUrl = $('#noteUrl').val();
                        ^^^