我是第一次使用 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/