我一直在寻找代码示例或方法,以便将数据从我的网络发送到服务器数据库。
找到一些选项后,我决定进行ajax调用来发送数据。代码是: html:
<form name="form" method="post">
<p> xxxxxx </p>
<input type="text" id="xxxxxx" class="textInput"/>
<p> yyyyyy </p>
<input type="text" id="yyyyyy" class="dateForm" />
<p> zzzzzz </p>
<input type="text" id="zzzzzz" class="dateForm" />
<input type="image" src="img/submit.png" class="addButton" name="Añadir"/>
</form>
jquery代码:
$(document).on("click", ".addButton", function(){
var json = {"xxxxxx": $("#xxxxx").val(),
"yyyyyy": $("#yyyyyy").val(),
"zzzzzz": $("#zzzzzz").val()};
$.ajax({
type: 'POST',
url: 'scripts/sendData.php',
data: {param1: json},
dataType: 'json',
success: function(data){
}
});
});
和php代码:
<?php
$db = ***connection parameters***;
$c1 = oci_connect(***connection parameters***);
if($c1){
$myJson = json_decode($_POST['param1']);
$xxxxxx= $myJson['xxxxxx'];
$yyyyyy= $myJson['yyyyyy'];
$zzzzzz= $myJson['zzzzzz'];
$sql = "INSERT INTO table (xxxxxx, yyyyyy, zzzzzz) VALUES (:xxxxxx,
to_date(:yyyyyy), to_date(:zzzzzz))";
$stid = oci_parse($c1, $sql);
oci_bind_by_name($stid, ':xxxxxx', $xxxxxx);
oci_bind_by_name($stid, ':yyyyyy', $yyyyyy);
oci_bind_by_name($stid, ':zzzzzz', $zzzzzz);
oci_execute($stid);
oci_free_statement($stid);
oci_close($c1);
}
}
?>
使用chrome进行调试正确创建了json,并且500错误是服务器错误,因此错误必须在php代码上。连接应该没问题,因为我正确地从服务器获取数据。
我一直在通过互联网多次更改代码,但仍然无法发送数据:S有人可以告诉错误在哪里吗?
PD:如果我在if($ c1)之前放了一个回声{并手动输入ajax方法中的url我什么也得不到。这有什么意义吗?
谢谢你,问候
答案 0 :(得分:0)
尝试以下某些操作:
从ajax调用中删除dataType: 'json'
为json var创建一个普通的javascript对象:
var json = {asdf: $("#xxxxx").val(),
ghjk: $("#yyyyyy").val(),
klyx: $("#zzzzzz").val()};
使用data: {param1: JSON.stringify(json)}
修改强>
尝试将ajax-post绑定到表单提交,而不是单击按钮,用户可以通过点击输入或其他内容发送表单...
$(document).on("submit", "form", function(){
....
});
答案 1 :(得分:0)
您还可以通过以下方式在ajax中传递JSON数据:
$(document).on("click", ".addButton", function(){
var arr=new Array();
arr.push({
'asdf': $("#xxxxx").val()
});
arr.push({
'ghjk':$("#yyyyyy").val()
});
arr.push({
'klyx':$("#zzzzzz").val()
});
var json=JSON.stringify(arr);
$.ajax({
type: 'POST',
url: 'scripts/sendData.php',
data: {param1: json},
success: function(data){
}
});
});