javascript - AJAX 调用中缺少 POST 参数会导致 PHP 脚本中出现未定义索引警告

标签 javascript php ajax

我是第一次使用 AJAX,所以我编写了代码并遵循了教程,但是当我尝试使用 ajax 发送我的帖子时,我得到了 undefined index ,我真的不知道为什么,我尝试搜索回答听到了,但由于我是第一次使用 AJAX 和 javascript,那里的代码没有告诉我任何信息。 这是我的代码,如果有任何帮助,我将非常感激,谢谢。

js方法

function post() {
    var name = $('meno').val();
    var priez = $('priezvisko').val();
    $.post( "aktualizuj.php", {
        'meno': name,
        'priezvisko': priez
    },
        function (data) {
        $('#result').html(data);
    }
        );
}

html 表单...

<html>
<head>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script type="text/javascript" src="prihlasenie.js"></script>
</head>
<body>
<form>
    <label for="meno" >Meno:</label><input type ="text" name="meno" id="meno" value ="meno" ><br>

    <label for="priezvisko" >Priezvisko:</label><input type ="text" id="priezvisko" name="priezvisko" value ="priezvisko" ><br>
<input type="button" value="ulozZmeny"  onclick="post()" >
</form>
<div id="result"></div>
</body>
</html>

这是我应该从ajax/javascript获取的地方

session_start();
require "pripojenie.php";


    $meno = $_POST['meno'];

    $priezvisko = $_POST["priezvisko"];
    $login = $_SESSION['login'];

最佳答案

jquery 不会序列化键:值对,其中值是 undefined ,即

$.post(url, { foo:undefined });

导致 jquery 不发送任何 POST 参数。

问题是由以下几行引起的,

var name = $('meno').val();
var priez = $('priezvisko').val();

这将查找一个元素 meno和一个元素 priezvisko(然后是它们的值),就像你有一个类似的文档

<p>
  <meno>...</meno>
  <priezvisko>...</priezvisko>
</p>

但是您正在寻找将 meno/priezvisko 作为其 id 属性值的元素:

var name = $('#meno').val();
var priez = $('#priezvisko').val();

您仍然应该检查 php 脚本中的参数是否存在。没有什么可以阻止另一个脚本/机器人/用户使用不同的参数或根本不使用参数来调用您的脚本。
另请参阅:

关于javascript - AJAX 调用中缺少 POST 参数会导致 PHP 脚本中出现未定义索引警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566711/

相关文章:

javascript - 将 CSS 应用于一些用 PHP 定义的 div

php - 如何让 MySQL 使用自定义排序方法对数据进行排序?

javascript - 我想使用 javascript 或 jquery 更改内容

javascript - postMessage() 和 dispatchEvent() 在源策略方面有什么区别?

javascript - 如何通过 Ajax 发送 HTML 和 Javascript

php - 为什么有时读不到ip地址,这个功能

php - 在wordpress中包含父同级文件夹中的PHP文件

php - mysql_real_escape_string() 期望参数 1 是字符串,

php - Javascript 数组通过 Ajax 传递给 PHP

ajax - ajax settimeout刷新div