2017-08-04 47 views
0

你好,我需要这段代码的帮助,我是新的Ajax和PHP。这段代码不工作,idk为什么。 我想在不刷新的情况下在数据库中插入表单。 这里是使用自举插入到Ajax php

 <!DOCTYPE html> 
<html> 
<head> 
    <title>CS INICIO</title> 
     <!-- Latest compiled and minified CSS --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

<!-- Optional theme --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> 

<!-- Latest compiled and minified JavaScript --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
</head> 
<body style="background-color: #13171a"> 
<div class="container container-table"> 
    <div class="row vertical-center-row"> 
    <div class="text-center col-md-4 col-md-offset-4"> 
    <form id="formulario" method="post"> 
     <div class="form-group"> 
      <input class="form-control" type="text" name= "nome" required="true" placeholder="Nome"> 
      <input class="form-control" type="text" name= "link" required="true" placeholder="Link Steam"> 
      <select class="form-control" name="rank"> 
       <option value="silver1">Silver 1</option> 
       <option value="silver2">Silver 2</option> 
       <option value="silver3">Silver 3</option> 
       <option value="silver4">Silver 4</option> 
       <option value="silver5">Silver Elite</option> 
       <option value="silverElite">Silver Elite Master</option> 
       <option value="silverEliteMaster">Silver 1</option> 
       <option value="goldnova1">Gold Nova 1</option> 
       <option value="goldnova2">Gold Nova 2</option> 
       <option value="goldnova3">Gold Nova 3</option> 
       <option value="goldnovamaster">Gold Nova Master</option> 
       <option value="ak1">Master Guardian 1</option> 
       <option value="ak2">Master Guardian 2</option> 
       <option value="akcruzada">Master Guardian Elite</option> 
       <option value="eximio">Eximio</option> 
       <option value="le">Legendary Eagle</option> 
       <option value="lem">Legendary Eagle Master</option> 
       <option value="supreme">Supreme</option> 
       <option value="global">Global Elite</option> 

    </select> 
    <button class="btn btn-default" onclick="addData()" id="submit">Button</button> 
     </div> 
    </form> 
    </div> 
    </div> 
</div> 

<script type="text/javascript"> 
function addData() { 
     dataString = $("#formulario").serialize(); 
     $(".text-danger").hide(); 

     $.ajax({ 
      type: "POST", 
      url: "enviar.php", 
      data: dataString, 
      cache: false, 
      dataType: 'json', 
      success: function(resp){ 
       if(resp.status == '0') { 
        alert("insert error"); 

       } else { 
         clearInput(); 
        alert("insert success"); 
      } 

} 
     }); 

     return false; //stop the actual form post !important! 
    } 

</script> 
</body> 
</html> 

这里的代码

网站的脚本 林所有HTML是enviar.php我不知道这里是错误 进出口新的代码 ficheiro PHP

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
    $host = "localhost"; 
    $root = "root"; 
    $pass = ""; 
    $tabela = "cssite"; 
    $conexao = mysqli_connect($host, $root, $pass, $tabela) or die("Erro Na base de dados") ; 


mysqli_connect_error($conexao); 
    $nome = $_POST['nome']; 
    $link = $_POST['link']; 
    $rank = $_POST['rank']; 

    $sql = "INSERT INTO utilizadores('nome','rank','link') VALUES ('".$nome."','".$rank."','".$link."')"; 

    $sql_result = mysqli_query($conexao,$sql); 
    if ($sql_result) { 
     echo 1; 
    } 
    else{ 
     echo 0; 
    } 


?> 

Thanks all for the help 

dsadsasafsafasfas

+0

你的SQL代码很容易受到SQL注入,您需要解决这个问题。 – Enstage

+0

即时通讯新的,我该如何解决? –

+0

谷歌“SQL注入”,关于它是什么的指南,以及如何解决它。 – Enstage

回答

0

需要更改为使用数据对象大括号,不正常的:

data:{nome:nome,link:link,rank:rank}, 

还需要更改的成功回调,而不是分配操作的比较操作的条件:

if (value == 1) { 

在你的PHP,你需要改变如果您希望它们输出到页面,请输入return 1;return 0;echo 1;echo 0;

您也只在监听点击事件,您应该听取提交事件,以便您可以防止默认操作。变化:

$('#submit').click(function(){ 

要:

$('#yourform').on("submit", function(e){ 
    e.preventDefault(); //Prevents submission of the form through normal means. 
+0

仍然不起作用 –

+0

我提供的三件事是您的脚本中需要解决的问题。你还没有提供足够的细节来帮助你,比我给你的更多。 – Enstage

+0

我想插入窗体的文本在数据库中不刷新 –

0

这将有助于在 “未定义指数错误”:

if(isset($_POST['submit'])){ 
     // your code 
} 
0
Call this function on button click 
function addData() { 
     dataString = $("#formulario").serialize(); 
     $(".text-danger").hide(); 

     $.ajax({ 
      type: "POST", 
      url: "enviar.php", 
      data: dataString, 
      cache: false, 
      dataType: 'json', 
      success: function(resp){ 
       if(resp.status == '0') { 
        alert("insert error"); 

       } else { 
         clearInput(); 
        alert("insert success"); 

      } 


     }); 

     return false; //stop the actual form post !important! 
    } 
+0

没有任何反应 –

+0

plz上传您的视图 –

+0

上传我的代码? –