我的表格分为三部分。每个部分都是动态的,并由来自数据库的数据填充。例如,保存在数据库中的每个项目只有在其状态为1时才能以input
的形式显示。此外,与所选数据一起,我的PHP脚本生成带有+
和-
javascript的按钮功能如此fiddle
我不知道如何解决的问题是如何为值大于0的每个输入保存name
和value
。如果这两个中的一部分我正在徘徊{ {1}}可用于解决我的问题?
脚本1,请参阅此jsfiddle:
javasripts
脚本2:
$('forma').submit(function(){
$('.qty').each(function(){
if($(this).val() != '0')
{
$('output').text($('output').text()+ ' ' + $(this).attr('name') + ' ' + $(this).val()+ ';' );
}
});
return false;
});
save.php文件示例:
var inputs = document.getElementById('forma').children;
var data = {};
for(var i in inputs ){
if(inputs[i].value != 0)data[inputs[i].name] = inputs[i].value;
}
脚本3:
<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("article_db") or die(mysql_error());
$sql="INSERT INTO article (order)
VALUES ('".$_POST['output']."')";
$save = mysql_query($sql);
mysql_close();
?>
和save.php:
$(document).ready(function() {
$('#forma').submit(function(e){
e.preventDefault();
$('.qty').each(function(){
if($(this).val() != '0')
{
$('#output').text($('#output').text()+ ' ' + $(this).attr('name') + ' ' + $(this).val()+ ';' );
}
});
var e=$(this);
var output = document.getElementById('#output');
var out = $(e).val();
$.ajax({
type: "POST",
url: "save.php",
dataType: "json",
data: "out="+out,
success: function(response) {
if (response.ok){
alert("Saved: " + response)
}else{
alert(response.error);
}
},
error: function(){
alert("This won't gonna work like that!");
}
});
});
});
我从页面的第一部分脚本3获得结果,但它不会保存到数据库中。
如果是,我该怎么办?我之前从未使用AJAX或XMLHttprequest将数据保存到数据库中,只使用纯PHP。我需要提一下,我也在这个项目中使用<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("caffe") or die(mysql_error());
if(isset($_POST['forma'])){
$sql="INSERT INTO narudzbe(narudzba) VALUES ('".$_POST['output']."')";
$save = mysql_query($sql);
}
mysql_close();
?>
。我知道jquerymobile
和mysql_connect
已被弃用,但这仅适用于练习。
提前谢谢。
答案 0 :(得分:0)
这可能对你有所帮助......
$.ajax({
url: '/path/to/file',
type: 'default GET (Other values: POST)',
dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
data: {param1: 'value1'},
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
现在..当我使用Ajax时我会做什么我创建一个ajax.php并在里面我使用isset条件......就像这样
if(isset($_POST['submitForm'])){
#php code
}
所以在数据的$ .ajax中:你必须像这样放置你的isset变量:
data: {submitForm: TRUE,otherdate:data}, //this is still javascript side
然后在php方面,如果你想根据你设置的类型访问所使用的数据,你可以得到它们:
$_GET['otherdate'] OR $_POST['otherdate']
希望这对你有帮助!
答案 1 :(得分:0)
由于Sebastiens的提示,我已经解决了我的问题,如下所示:
的javascript:
$(document).ready(function(e) {
$("#posalji").click(function() {
var dataType = document.getElementById("dataType").value;
var output = document.getElementById("output").value;
var status = document.getElementById("status").value;
$.ajax({
type: "POST",
url: "save.php",
data: {dataType: dataType, output: output, status: status}
})
});
});
和PHP文件:
<?php
$dataType = $_POST['dataType'];
$output = $_POST['output'];
$status = $_POST['status'];
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("caffe") or die(mysql_error());
$sql="INSERT INTO narudzbe (sto, narudzba, status) VALUES ('$dataType', '$output', '$status')";
$save = mysql_query($sql);
mysql_close();
header('Location: index.php');
?>
谢谢Sebastien,再次感谢你。