Ajax + PHP 多行
Ajax + PHP in multi row
我创建了一个简单的网页来一次添加一个产品。用户只需输入产品名称,所有产品信息将通过 AJAX 获取。我使用 jQuery AJAX 并且有效。
但是现在用户希望在行的末尾有一个按钮,以便他们可以在同一页面中添加许多产品。所以当他们想添加更多产品时,只需单击按钮,下面就会出现一个新行供他们添加产品。
- 我怎样才能将数据传递给 PHP?每个文本框的名称是什么?在PHP,我怎样才能得到所有这些产品信息?在数组中?
- 如何使用ajax将收到的信息放到不同的行? IE。当用户 select 第二行产品时,如何将产品信息放回第二行字段?
- 如果我使用 AJAX,我知道我们可以使用 JSON 将多个数据传递到服务器。我也可以接收多个数据吗?现在我只使用分隔符。
有什么例子吗?
谢谢
有很多可能性可以做到这一点。这是一。
我不知道你想在哪里计算你的小计。和折扣。它可以在 javascript 内完成,也可以在 php 内完成。这是你的选择。
$(document).on("change", ".cboProdc", function(e){ // As you change the select box element
$("*").removeClass("active");//Remove active class from all elements in the DOM
$(this).parent().addClass("active");//Add active for a div container parent
//Add active for each input som form active div
$(".active .txtPrice").addClass("active");
$(".active .txtDisc").addClass("active");
$(".active .txtSugDisc").addClass("active");
$(".active .txtQt").addClass("active");
$(".active .txtStot").addClass("active");
//Make your AJAX request to PHP.
//Send to PHP id product like this $("option:selected", this).val();
var dt={
productId: $("option:selected", this).val()
};
//Ajax
var request =$.ajax({//http://api.jquery.com/jQuery.ajax/
url: "yourServer.php",
type: "POST",
data: dt,
dataType: "json"
});
//Retrieve all information through JSON and put it in each active element.
//Ajax Done catch JSON from PHP
request.done(function(dataset){
for (var index in dataset){
txtPrice=dataset[index].Price;
txtDisc=dataset[index].Discount;
txtSugDisc=dataset[index].SugDisc;
txtQt=dataset[index].Quanty;
txtStot=dataset[index].Stot;//If you want to use php to perform the calculus
}
//JavaScript conditions. Here you can control the behaivior of your html object, based on your PHP response and pass values to acvive elements
$(".active .txtPrice").val(txtPrice);
$(".active .txtDisc").val(txtDisc);
$(".active .txtSugDisc").val(txtSugDisc);
$(".active .txtQt").val(txtQt);
$(".active .txtStot").val(txtStot);
});//End of request.done(...
});//End of $(document).on("change",
///////////////////////////////////////////////////////////////////////////////////
//Your php code
//Make your query at database
//Return like this:
$arrToJSON = array(
"Price"=>"the price",
"Discount"=>"the Discount",
"SugDisc"=>"the SugDisc",
"Quanty"=>"the Quanty",
"txtStot"=>"the txtStot",
);
return json_encode(array($arrToJSON));
//////////////////////////////////////////////////////////////////////////////////////
要保存所有信息,请为每个元素制作一个 .each() http://api.jquery.com/each/,检索每个信息并使用分隔符发送到 php。例如“*”
在 php 你可以使用 explod http://php.net/manual/en/function.explode.php
这里有一个 fiddle http://jsfiddle.net/hp5kbtce/1/ 来查看如何为每个产品行select 元素
我创建了一个简单的网页来一次添加一个产品。用户只需输入产品名称,所有产品信息将通过 AJAX 获取。我使用 jQuery AJAX 并且有效。
但是现在用户希望在行的末尾有一个按钮,以便他们可以在同一页面中添加许多产品。所以当他们想添加更多产品时,只需单击按钮,下面就会出现一个新行供他们添加产品。
- 我怎样才能将数据传递给 PHP?每个文本框的名称是什么?在PHP,我怎样才能得到所有这些产品信息?在数组中?
- 如何使用ajax将收到的信息放到不同的行? IE。当用户 select 第二行产品时,如何将产品信息放回第二行字段?
- 如果我使用 AJAX,我知道我们可以使用 JSON 将多个数据传递到服务器。我也可以接收多个数据吗?现在我只使用分隔符。
有什么例子吗?
谢谢
有很多可能性可以做到这一点。这是一。 我不知道你想在哪里计算你的小计。和折扣。它可以在 javascript 内完成,也可以在 php 内完成。这是你的选择。
$(document).on("change", ".cboProdc", function(e){ // As you change the select box element
$("*").removeClass("active");//Remove active class from all elements in the DOM
$(this).parent().addClass("active");//Add active for a div container parent
//Add active for each input som form active div
$(".active .txtPrice").addClass("active");
$(".active .txtDisc").addClass("active");
$(".active .txtSugDisc").addClass("active");
$(".active .txtQt").addClass("active");
$(".active .txtStot").addClass("active");
//Make your AJAX request to PHP.
//Send to PHP id product like this $("option:selected", this).val();
var dt={
productId: $("option:selected", this).val()
};
//Ajax
var request =$.ajax({//http://api.jquery.com/jQuery.ajax/
url: "yourServer.php",
type: "POST",
data: dt,
dataType: "json"
});
//Retrieve all information through JSON and put it in each active element.
//Ajax Done catch JSON from PHP
request.done(function(dataset){
for (var index in dataset){
txtPrice=dataset[index].Price;
txtDisc=dataset[index].Discount;
txtSugDisc=dataset[index].SugDisc;
txtQt=dataset[index].Quanty;
txtStot=dataset[index].Stot;//If you want to use php to perform the calculus
}
//JavaScript conditions. Here you can control the behaivior of your html object, based on your PHP response and pass values to acvive elements
$(".active .txtPrice").val(txtPrice);
$(".active .txtDisc").val(txtDisc);
$(".active .txtSugDisc").val(txtSugDisc);
$(".active .txtQt").val(txtQt);
$(".active .txtStot").val(txtStot);
});//End of request.done(...
});//End of $(document).on("change",
///////////////////////////////////////////////////////////////////////////////////
//Your php code
//Make your query at database
//Return like this:
$arrToJSON = array(
"Price"=>"the price",
"Discount"=>"the Discount",
"SugDisc"=>"the SugDisc",
"Quanty"=>"the Quanty",
"txtStot"=>"the txtStot",
);
return json_encode(array($arrToJSON));
//////////////////////////////////////////////////////////////////////////////////////
要保存所有信息,请为每个元素制作一个 .each() http://api.jquery.com/each/,检索每个信息并使用分隔符发送到 php。例如“*” 在 php 你可以使用 explod http://php.net/manual/en/function.explode.php 这里有一个 fiddle http://jsfiddle.net/hp5kbtce/1/ 来查看如何为每个产品行select 元素