用查询追加PHP值
append php values with query
首先我想对你迄今为止的帮助表示感谢。我已经成功地创建了一个ajax请求,在一个dropbox中显示数据,但正在发生的事情是在数据库中为每个项目创建一个dropbox。在我想要它创建一个dropbox的所有项目在它。然后有能力添加另一个dropbox..
这里是我的new_order.php
<div class="page_forms">
<div class="centered">
<div class="container-fluid">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<div class="account-wall">
<div class="account-wall-title">
Select Products on Order
</div>
<div class="form-group col-xs-12 col-sm-6 col-sm-offset-3">
<a href="#" id="AddMoreFileBox" class="form-control btn btn-info">Add Product</a>
</div>
<form id="new_order_client_part_2" method="post" action="">
<div id="InputsWrapper">
<!-- This is where the dropbox will be displayed-->
<div style="clear:both"></div>
</div>
<div class="new_order_submit col-xs-12 col-sm-6 col-sm-offset-3">
<input class="form-control" name="new_order_part_2_submit" type="submit" value="Next">
</div>
<div style="clear:both"></div>
</form>
</div>
</div>
</div>
</div>
</div>
这是product_request.php
<?php
include ("../core/init.php");
$result = mysql_query("SELECT * FROM `product`");
$data = array();
while ($row = mysql_fetch_array($result)) {
$data[] = $row;
}
echo json_encode($data);
?>
这是我的main.js
$(document).ready(function() {
var MaxInputs = 8; //maximum input boxes allowed
var InputsWrapper = $("#InputsWrapper"); //Input boxes wrapper ID
var AddButton = $("#AddMoreFileBox"); //Add button ID
var x = InputsWrapper.length; //initlal text box count
var FieldCount=1; //to keep track of text box added
$(AddButton).click(function (e) {
if(x <= MaxInputs) {
FieldCount++;
$.ajax({
url: 'ajax/product_request.php', data: "", dataType: 'json', success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var product_id = row[0];
var product_name = row[1];
$("#InputsWrapper").append('<div class="col-xs-12"><div class="input-group"><span class="order_quantity input-group-btn"><input class="form-control" type="number" placeholder="Quantity"></span><select id="order_product" class="form-control" name="products[]"><option value="'+product_id+'">'+product_name+'</option></select><span class="input-group-btn removeclass"><button class="btn btn-danger" type="button">X</button></span></div></div><div style="clear:both"></div>');
x++;
}
}
});
}
return false;
});
$("body").on("click",".removeclass", function(e){ //user click on remove text
if( x > 1 ) {
$(this).parent('div').remove(); //remove text box
x--; //decrement textbox
}
return false;
})
});
所以,是的,我知道问题在我的追加…它正在为每个结果附加下拉框…我真的不知道该怎么写……
如果你能帮忙的话,提前谢谢你:)
彼得PHP代码不是在客户端执行的,所以当您追加下拉列表时,PHP代码不会被执行。建议使用AJAX。我知道评论中会有很多关于这个的废话,但是我觉得jQuery的AJAX是最容易理解的。您只需将一个关联数组传递给AJAX函数。例子:
$.ajax({
url: "script.php", //File you wish to execute
method: "GET", //Can be GET or POST
data: "thing=1&thing2=2", //Just like the GET parameters in a URL
success: function(data) {
//Do what you want, data is the returned data from the PHP script
},
});
例如,快速查看一下您的代码,对于您想要添加的"order_product"选择,将PHP移到另一个文件中,对其进行AJAX处理,并对其进行追加。您甚至可以在success函数中添加追加符,或者为更多依赖的选择调用另一个AJAX。
或者,如果你想在一次调用中获取所有的数据,只是动态地添加东西(不确定这是否是你想要的,但似乎是这样的,也许),你可以使用jQuery依赖的选择。编写自己的代码并不难,但如果您只是在寻找拖放解决方案,那么这里是GitHub: jquery-dependent-selects。好运!
我在你的HTML代码中没有看到#AddMoreFileBox
。你是不是漏掉了什么?对于你的问题,我有两种方法来解决。
- 你可以复制第一个div类
col-xs-12
,然后附加到#InputsWrapper
使用sql结果,您可以将其分配给javascript变量as当前php文件中的Json。然后你可以添加新的选择Json
<?php echo json_encode($sql_result);?>
;
我想首先感谢大家的帮助…我算出来了。
这里是我的new_order.php
<div class="page_forms">
<div class="centered">
<div class="container-fluid">
<div class="col-xs-12 col-sm-6 col-sm-offset-3">
<div class="account-wall">
<div class="account-wall-title">
Select Products on Order
</div>
<div class="form-group col-xs-12 col-sm-6 col-sm-offset-3">
<a href="#" id="AddMoreFileBox" class="form-control btn btn-info">Add Product</a>
</div>
<form id="new_order_client_part_2" method="post" action="">
<div id="InputsWrapper">
<!-- This is where the dropbox will be displayed-->
<div style="clear:both"></div>
</div>
<div class="new_order_submit col-xs-12 col-sm-6 col-sm-offset-3">
<input class="form-control" name="new_order_part_2_submit" type="submit" value="Next">
</div>
<div style="clear:both"></div>
</form>
</div>
</div>
</div>
</div>
</div>
这是product_request.php
<?php
include ("../core/init.php");
$result = mysql_query("SELECT * FROM `product`");
$data = array();
while ($row = mysql_fetch_array($result)) {
$data[] = $row;
}
echo json_encode($data);
?>
这是我的main.js
$(document).ready(function() {
var MaxInputs = 8; //maximum input boxes allowed
var InputsWrapper = $("#InputsWrapper"); //Input boxes wrapper ID
var AddButton = $("#AddMoreFileBox"); //Add button ID
var x = InputsWrapper.length; //initlal text box count
var FieldCount=0; //to keep track of text box added
$(AddButton).click(function (e) {
if(x <= MaxInputs) {
FieldCount++;
$.ajax({
url: 'ajax/product_request.php', data: "", dataType: 'json', success: function(rows)
{
var product_id = rows[0];
var product_name = rows[1];
var options = $("#order_product_"+ FieldCount +"");
$.each(rows, function() {
options.append($("<option />").val(this.product_id).text(this.product_name));
});
}
});
$("#InputsWrapper").append('<div class="col-xs-12"><div class="input-group"><span class="order_quantity input-group-btn"><input class="form-control" type="number" placeholder="Quantity"></span><select id="order_product_'+ FieldCount +'" class="product_on_order form-control" name="products[]"></select><span class="input-group-btn removeclass"><button class="btn btn-danger" type="button">X</button></span></div></div><div style="clear:both"></div>');
x++;
}
return false;
});
$("body").on("click",".removeclass", function(e){ //user click on remove text
if( x > 1 ) {
$(this).parent('div').remove(); //remove text box
x--; //decrement textbox
};
return false;
});
});
所有修复和工作干杯!!
彼得- 使用php或javascript从facebook相册URL中删除多余的部分
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 将数组从PHP传递到Javascript
- 表追加而不附加最后一个元素
- 如何在php文件中获取$.post-ajax传递的值
- Javascript运行php文件,然后下载文件
- PHP中的setcookie仅适用于localhost
- 如何使用jquery处理php循环通过元素
- 通过Ajax将JavaScript函数传递给PHP文件
- 使用PHP上传图像并使用JQuery进行追加
- 追加在 PHP 生成的特定行 ID 之前
- jQuery, Masonry, JWPlayer, Infinite-Scroll 在 PHP 包含文件中追加“
- 如何在此PHP代码中捕获和追加文本框值到URL
- 用查询追加PHP值
- 为什么PHP文件追加只在99.7%的尝试中完全成功?
- php . .使用文本文件在分号表中插入(追加)一条记录
- 使用JavaScript/PHP将文本追加到本地文本文件
- 将PHP foreach插入到jquery追加函数中
- 将回显的HTML代码(PHP)追加到Javascript