如何使用 JS/JQuery 显示数组中的单个项目
How to display single items from array using JS/JQuery
这是我的第一个问题,请多关照 ^^ 我正在训练自己 JS/Jquery/Ajax。
简短:Projekt 过滤特定公司最接近我们当前邮政编码的位置。
所以,到目前为止,这是我的“工作”:在 index.php 上,我使用这样的简单形式:
<form id="ajaxForm">
<input type="number" class="form-control" id="plzInput" name="plzInput" placeholder="99999"
aria-label="Username" aria-describedby="basic-addon1" required>
<button type="submit" id="plzSubmit" name="plzSubmit" class="btn btn-primary">Search</button>
</form>
我使用 ajax 将一些数据传递给 ajax.php:
var request;
$("#ajaxForm").submit(function (event) {
event.preventDefault();
if (request) {
request.abort();
}
var $form = $(this);
//Caching
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
$inputs.prop("disabled", true);
request = $.ajax({
url: "ajax.php",
type: "post",
data: serializedData
});
request.done(function (response, textStatus, jqXHR) {
console.log("in ajax.php geschrieben!");
console.log(response);
showResults(response);
});
request.fail(function (jqXHR, textStatus, errorThrown) {
console.error(
"The following error occurred: " +
textStatus, errorThrown
);
});
request.always(function () {
$inputs.prop("disabled", false);
});
});
function showResults(data){
alert(data);
}
});
此处数据最终使用 php 处理(数据库查询、计算、结果)。现在我正在努力研究如何将 ajax.php 的结果发送回索引。总而言之,我想从 SQLquery 发回一个数组,并使用 index.php 上的 js/jquery 将这些值显示到现有的 html 输入中。但我不知道为什么 ajax.php 的响应不能被 JS/Jquery 读取。我认为 php 数组与 js 数组有问题。有没有办法发送“多个”响应甚至一组响应?
我很高兴能得到您的帮助!
执行此操作的一个好方法是使用 JSON。
在 PHP 方面,在 ajax.php
中,您使用 json_encode() 将数组编码为字符串。
然后 JSON 字符串作为 response
在您的 Javascript AJAX 中接收。在那里你可以把它变成一个数组 JSON.parse():
let array = JSON.parse(response);
JQuery也有一个shorthand,见:
这是我的第一个问题,请多关照 ^^ 我正在训练自己 JS/Jquery/Ajax。 简短:Projekt 过滤特定公司最接近我们当前邮政编码的位置。 所以,到目前为止,这是我的“工作”:在 index.php 上,我使用这样的简单形式:
<form id="ajaxForm">
<input type="number" class="form-control" id="plzInput" name="plzInput" placeholder="99999"
aria-label="Username" aria-describedby="basic-addon1" required>
<button type="submit" id="plzSubmit" name="plzSubmit" class="btn btn-primary">Search</button>
</form>
我使用 ajax 将一些数据传递给 ajax.php:
var request;
$("#ajaxForm").submit(function (event) {
event.preventDefault();
if (request) {
request.abort();
}
var $form = $(this);
//Caching
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
$inputs.prop("disabled", true);
request = $.ajax({
url: "ajax.php",
type: "post",
data: serializedData
});
request.done(function (response, textStatus, jqXHR) {
console.log("in ajax.php geschrieben!");
console.log(response);
showResults(response);
});
request.fail(function (jqXHR, textStatus, errorThrown) {
console.error(
"The following error occurred: " +
textStatus, errorThrown
);
});
request.always(function () {
$inputs.prop("disabled", false);
});
});
function showResults(data){
alert(data);
}
});
此处数据最终使用 php 处理(数据库查询、计算、结果)。现在我正在努力研究如何将 ajax.php 的结果发送回索引。总而言之,我想从 SQLquery 发回一个数组,并使用 index.php 上的 js/jquery 将这些值显示到现有的 html 输入中。但我不知道为什么 ajax.php 的响应不能被 JS/Jquery 读取。我认为 php 数组与 js 数组有问题。有没有办法发送“多个”响应甚至一组响应?
我很高兴能得到您的帮助!
执行此操作的一个好方法是使用 JSON。
在 PHP 方面,在 ajax.php
中,您使用 json_encode() 将数组编码为字符串。
然后 JSON 字符串作为 response
在您的 Javascript AJAX 中接收。在那里你可以把它变成一个数组 JSON.parse():
let array = JSON.parse(response);
JQuery也有一个shorthand,见: