阿贾克斯& PHP提交

时间:2014-11-05 11:34:59

标签: php mysql ajax

我是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可以帮助我吗?

提前多多感谢,并感谢大家多年来为其他人提供的许多有用答案。

2 个答案:

答案 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')");
  • 通过转义变量来避免sql注入。

答案 1 :(得分:1)

您的SQL语法中有错误。 我认为它是INSERT INTO-Statement中不同的列数。 请从VALUES-part中删除$type,或在COLUMN定义部分添加type

下次如果遇到类似问题,请发布mysqli_error输出。 :)