JQuery / AJAX:在输入字段更改时,创建 php 会话,并刷新当前页面
JQuery / AJAX: On Input Field change, create php session, and refresh current page
我有两个输入字段。一个用于显示业务,另一个隐藏,称为 auto_search_id 并转到服务器。我已经创建了自动完成功能。我想要做的是,如果用户开始键入并决定单击已存储业务的自动完成列表项,该页面将获取 id,将其发送到 update.php 页面以更新 PHP 会话id,然后用当前Session id刷新页面。
在找出正确的 AJAX 编码时遇到问题。我对输入字段的更改功能不起作用。它会调出自动完成功能,但是当单击自动完成列表项时,它不会发送 id 并刷新页面。我仍然是 JQuery/AJAX 的新手,但我想我在 #auto_search_id 更改函数中遗漏了一些东西但不知道是什么。请帮助...
Javascript/JQuery/Ajax
<script>
$(document).ready(function(){
$("#business").autocomplete({
minLength: 2,
source: function(request, response){
$.ajax({
type: "POST",
url: "/autocomplete-pq.php",
dataType: "json",
data:'keyword=' + request.term,
success: function(data){
response(data);
}
});
},
select: function(event, ui){
$("#business").val(ui.item.label);
$("#auto_search_id").val(ui.item.value);
return false;
}
});
$("#auto_search_id").change(function(){
$.ajax({
type:'POST',
url:"/update.php",
data: { varname: reponse},
success:function(response){
location.reload()
}
});
});
});
</script>
PHP
<?php
session_start();
$_SESSION["id"] = $_POST["varname"];
echo $_SESSION["id"];
?>
HTML
<input type="text" id="business" name="jurisdiction" value="<?php echo $juristiction ?>" required>
<input type="hidden" name="search" id="auto_search_id" />
首先您需要检查更改事件是否被调用。在里面放一个警报。保持session需要传递id调用参数PHPSESSID,但是有一定的安全隐患,请阅读:http://php.net/manual/pt_BR/function.session-id.php
我无法重现代码,但我发现有两处错误:
1 调用 $("#auto_search_id").val(ui.item.value);
实际上会设置输入的新值,但不会触发它的 change 事件。你应该像这样触发它:
$("#auto_search_id").val(ui.item.value).trigger("change");
2 您正在尝试向服务器发送响应(尚不可用)。 A 假设您要将隐藏字段值发送到服务器。
$("#auto_search_id").change(function(){
var newID = $(this).val();
$.ajax({
type:'POST',
url:"/update.php",
data: {varname: newID},
success:function(response){
location.reload()
}
});
});
我有两个输入字段。一个用于显示业务,另一个隐藏,称为 auto_search_id 并转到服务器。我已经创建了自动完成功能。我想要做的是,如果用户开始键入并决定单击已存储业务的自动完成列表项,该页面将获取 id,将其发送到 update.php 页面以更新 PHP 会话id,然后用当前Session id刷新页面。
在找出正确的 AJAX 编码时遇到问题。我对输入字段的更改功能不起作用。它会调出自动完成功能,但是当单击自动完成列表项时,它不会发送 id 并刷新页面。我仍然是 JQuery/AJAX 的新手,但我想我在 #auto_search_id 更改函数中遗漏了一些东西但不知道是什么。请帮助...
Javascript/JQuery/Ajax
<script>
$(document).ready(function(){
$("#business").autocomplete({
minLength: 2,
source: function(request, response){
$.ajax({
type: "POST",
url: "/autocomplete-pq.php",
dataType: "json",
data:'keyword=' + request.term,
success: function(data){
response(data);
}
});
},
select: function(event, ui){
$("#business").val(ui.item.label);
$("#auto_search_id").val(ui.item.value);
return false;
}
});
$("#auto_search_id").change(function(){
$.ajax({
type:'POST',
url:"/update.php",
data: { varname: reponse},
success:function(response){
location.reload()
}
});
});
});
</script>
PHP
<?php
session_start();
$_SESSION["id"] = $_POST["varname"];
echo $_SESSION["id"];
?>
HTML
<input type="text" id="business" name="jurisdiction" value="<?php echo $juristiction ?>" required>
<input type="hidden" name="search" id="auto_search_id" />
首先您需要检查更改事件是否被调用。在里面放一个警报。保持session需要传递id调用参数PHPSESSID,但是有一定的安全隐患,请阅读:http://php.net/manual/pt_BR/function.session-id.php
我无法重现代码,但我发现有两处错误:
1 调用 $("#auto_search_id").val(ui.item.value);
实际上会设置输入的新值,但不会触发它的 change 事件。你应该像这样触发它:
$("#auto_search_id").val(ui.item.value).trigger("change");
2 您正在尝试向服务器发送响应(尚不可用)。 A 假设您要将隐藏字段值发送到服务器。
$("#auto_search_id").change(function(){
var newID = $(this).val();
$.ajax({
type:'POST',
url:"/update.php",
data: {varname: newID},
success:function(response){
location.reload()
}
});
});