我是AJAX的新手,它从来没有真正成功,但我想最终解决它。这就是为什么我要求你们帮忙!多年来,在阅读了数百个答案之后,我终于找到了无法理解的地步。
我有一个简单的Jquery UI弹出窗口,显示要填充的表单:
<form>
<div id="Dialog2">
<p>Nieuwe Klant</p>
<table width="100%" border="0">
<tr>
<th scope="row">Naam:</th>
<td><input name="nc_name" type="text" id="nc_name" tabindex="1" /></td>
</tr>
<tr>
<th scope="row">Type:</th>
<td><select name="nc_type" id="nc_type" tabindex="2">
<option>Bedrijf</option>
<option>Particulier</option>
</select></td>
</tr>
<tr>
<th scope="row">Adres:</th>
<td><input name="nc_adres" type="text" id="nc_adres" tabindex="3" /></td>
</tr>
<tr>
<th scope="row">Postcode:</th>
<td><input name="nc_zip" type="text" id="nc_zip" tabindex="4" /></td>
</tr>
<tr>
<th scope="row">Land:</th>
<td><input name="nc_country" type="text" id="nc_country" tabindex="5" /></td>
</tr>
<tr>
<th scope="row">Stad:</th>
<td><input name="nc_city" type="text" id="nc_city" tabindex="6" /></td>
</tr>
<tr>
<th scope="row">KVK Nummer:</th>
<td><input name="nc_kvk" type="text" id="nc_kvk" tabindex="8" /> <input name="kvkzoek" type="button" id="kvkzoek" tabindex="7" value="Zoek Automatisch" onclick="seeKVKnumber()" /></td>
</tr>
<tr>
<th scope="row"><div id="info" /></th>
<td><input name="submit_two" type="button" id="submit_two" tabindex="9" value="Klant Toevoegen" /></td>
</tr>
</table>
<p><br />
</p>
</div>
</form>
由同一页面标题中的以下脚本处理:
$(document).ready(function(){
$("#submit_two").click(function(){
var name=$("#nc_name").val();
var type=$("#nc_type").val();
var adres=$("#nc_adres").val();
var zip=$("#nc_zip").val();
var country=$("#nc_country").val();
var city=$("#nc_city").val();
var kvk=$("#nc_kvk").val();
$.ajax({
type:"get",
url:"addcustomer.php",
data:"name="+name+"&type="+type+"&adres="+adres+"&zip="+zip+"&country="+country+"&city="+city+"&kvk="+kvk,
success:function(data){
$("#info").html(data);
}
});
});
});
我使用过“POST”以及“GET”,但两者都不起作用。 处理INSERT进入我的数据库的php页面如下所示:
<?
include('../includes/dbconfig.php');
$name=$_GET["name"];
$type=$_GET["type"];
$adres=$_GET["adres"];
$zip=$_GET["zip"];
$city=$_GET["city"];
$kvk=$_GET["kvk"];
$country=$_GET["country"];
//Insert query
$query = mysqli_query($con,"insert into customers(name, address, zipcode, city, kvk, country) values ('$name','$type','$adres','$zip','$city','$kvk','$country')");
if($query){
echo "Your comment has been sent";
}
else{
echo "Error in sending your comment";
var_dump($_GET);
}
mysqli_close($con); // Connection Closed
?>
每次填写表单时都会收到错误消息:“发送评论时出错”。
即使var_dump($ _ GET)也会显示正确的值:
array(7) { ["name"]=> string(5) "MrBla" ["type"]=> string(7) "Bedrijf" ["adres"]=> string(6) "Blabla" ["zip"]=> string(7) "aaaabla" ["country"]=> string(6) "blabla" ["city"]=> string(3) "bla" ["kvk"]=> string(3) "bla" }
但是这些值并没有出现在数据库中。 Mozilla的Firebug也不会显示任何错误或中断。
我希望你们中的任何一个代码wizzards可以帮助我吗?
提前多多感谢,并感谢大家多年来为其他人提供的许多有用答案。
答案 0 :(得分:1)
您忘记在查询中添加列type
:
$query = mysqli_query($con,"insert into customers(name, address, zipcode, city, kvk, country) values ('$name','$type','$adres','$zip','$city','$kvk','$country')");
应该是
$query = mysqli_query($con,"insert into customers(name, type, address, zipcode, city, kvk, country) values ('$name','$type','$adres','$zip','$city','$kvk','$country')");
答案 1 :(得分:1)
您的SQL语法中有错误。
我认为它是INSERT INTO-Statement中不同的列数。
请从VALUES-part中删除$type
,或在COLUMN定义部分添加type
。
下次如果遇到类似问题,请发布mysqli_error输出。 :)