我真的陷入了ajax,
我没有问题,只需使用form标签将值发送到PHP文件。 但我想使用jquery和ajax使我的程序更加花哨。 我完全被困了几天。
我想要做的是当我点击某些文字(我的代码中的学习进度)时,它变成了一个编辑框 当我完成编辑时,它发送到变量“name”并在PHP中更新。 所以我必须以某种方式在ajax中的编辑框中发送值, 但我一直在
“未定义的索引:名称”
我在谷歌上搜索了很多,但我找不到答案。 我可以从这里得到一些帮助吗?
我想把我编辑过的值放到变量name
;
并希望检查服务器端。
如何将我编辑的内容的值放入变量name
并发送
在POST的PHP和检查服务器?
这是我到目前为止所做的代码。
====== HTML ==
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/.../jquery/3.2.0/jquery.min.js"></script>
<div id="fullname">study progress</div>
<script>
$('#fullname').click(function(){
var name = $(this).text();
$(this).html('');
$('<input></input>')
.attr({
'type': 'text',
'name': 'fname',
'id': 'txt_fullname',
'size': '50',
'value': name
})
.appendTo('#fullname');
$("#txt_fullname").focus().val("").val(name);
});
$(document).on('blur','#txt_fullname', function(){
var name = $(this).val();
$.ajax({
type: 'POST',
url: 'practice_check.php',
data : { "name" : name },
success: function(){
$('#fullname').text(name);
alert(name);
location.replace("practice_check.php");
}
});
});
</script>
====== PHP(practice_check.php)======
<?php
$name = $_POST["name"];
echo $name;
?>
答案 0 :(得分:1)
你错了。您需要指定URL,如果要在PHP中获取数据,则需要添加数据。我做了一个简单的代码。您可以通过以下链接查看完整详细信息:http://api.jquery.com/jquery.ajax/
数据 键入:PlainObject或String或Array 要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值
使用相同的键序列化多个值
var name = 'abc';
$.ajax({
url: 'practice_check.php',
type: 'POST',
data: {name: name},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
答案 1 :(得分:0)
首先你的ajax应该是这样的
$.ajax({
type: 'POST',
url: 'practice_check.php',
data : { "name" : name },
dataType: 'JSON',
success: function(response){
//response will be the output of practice_check.php
$('#fullname').text(name);
alert(response.data);
}
});
你练习_check.php
$name = $_POST["name"];
// do your functions here .. then echo response like for example
if(strlen($name) < 3){ echo "oops invalid name"; }
else { echo "successfully checked with no errors"; }