2017-06-21 4 views
0

私はこのフォームフォームデータは

<form id="home" class="validate-form" method="post" enctype="multipart/form-data"> 
<!-- Form Item --> 
<div class="form-group"> 
    <label>How much money do you need? (Kenya Shillings)</label> 
    <div class="input-group"> 
     <div class="input-group-addon">Ksh</div> 
     <input id="moneyAmount" type="number" id="amount" name="amount" class="form-control slider-control input-lg" value="100000" min="10000" max="1000000" data-slider="#moneySlider" required> 
    </div> 
    <div id="moneySlider" class="form-slider" data-input="#moneyAmount" data-min="10000" data-max="1000000" data-value="100000"></div> 
</div> 
<!-- Form Item --> 
<div class="form-group"> 
    <label>How long? (months)</label> 
    <div class="input-group"> 
     <input id="monthNumber" type="number" id="duration" name="duration" class="form-control slider-control input-lg" value="10" min="6" max="12" data-slider="#monthSlider" required> 
     <div class="input-group-addon">months</div> 
    </div> 
    <div id="monthSlider" class="form-slider" data-input="#monthNumber" data-min="6" data-max="12" data-value="10"></div> 
</div> 
<div class="form-group"> 
    <label>Telephone Number</label> 
    <!-- Radio --> 
    <input type="number" id="telephone" name="telephone" class="form-control" required/> 
</div> 
<!-- Form Item --> 
<div class="form-group"> 
    <label>3 Months Bank or Paypal or Mpesa Statements</label> 
    <!-- Radio --> 
    <input type="file" name="image" class="ml btn btn-primary btn-lg" /><span>Upload</span> 
</div> 
<!-- Form Item --> 
<div class="form-group"> 
    <label>Monthly repayment</label> 
    <span id="formResult" class="form-total">Ksh<span>262.99</span></span> 
</div> 
<div class="form-group form-submit"> 
    <button type="submit" class="btn-submit btn-lg"><span>Send a request! 
</span></button> 
</div> 
</form> 

これはjQueryのスクリプトですが持っている重複データを投稿できません。

​​3210

これは私のPHPコードです:フォームはかなり基本的なものとサーバーへの唯一のポスティングデータあなたが言うことができるように

<?php 

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

header('Access-Control-Allow-Origin: *'); 

header('Access-Control-Allow-Methods: GET, POST'); 

header("Access-Control-Allow-Headers: X-Requested-With"); 

    function random_str($length, $keyspace = 'abcdefghijklmnopqrstuvwxyz') 
    { 
    $str = ''; 
    $max = mb_strlen($keyspace, '8bit') - 1; 
    for ($i = 0; $i < $length; ++$i) { 
     $str .= $keyspace[random_int(0, $max)]; 
    } 
    return $str; 
    } 

$pass = random_str(4); 
/** 
Generic Customer Shown Interest 
*/ 

$servername = "localhost"; 
$username = "root"; 
$password = "123456"; 
$dbname = "algo"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

//Posted Variables 

$amount = $_POST['amount']; 
$duration = $_POST['duration']; 
$telephone = $_POST['telephone']; 
$date = date('Y-m-d H:i:s'); 


//Check If User Exists 
$result = $conn->query("select id from users where telephone=$telephone"); 
if($result->num_rows == 0) { 
    //Insert New User 
$sql = "INSERT INTO users (telephone, password, service_name,date_submitted) VALUES ('$telephone', '$pass', 'loans','$date')"; 

if ($conn->query($sql) === TRUE) { 
    echo "User Is Inserted"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

} else { 
    //Insert New User 
$sql2 = "INSERT INTO loans (amount, duration, telephone,documents,status,date) 
VALUES ('$amount', '$duration','$telephone','logan2','on-hold','$date')"; 

if ($conn->query($sql2) === TRUE) { 
    echo "Loan Is Inserted"; 
} else { 
    echo "Error: " . $sql2 . "<br>" . $conn->error; 
} 

$conn->close(); 
} 

?> 

。ページを読み込むと、データをデータベースに挿入できますが、リンクを再度クリックすると何も挿入されません。

フォームデータは、サーバーに重複データを投稿できないのですか?

+0

F12、コンソールで、エラーは何ですか? – mkaatman

+0

@mkaatmanサーバから 'data'を返しています。何かが挿入されていれば、正しく挿入されたテキストを取得します。私が最初に提出するとき、ページが読み込まれ、私は挿入することができます。もう一度送信すると、何も投稿されないので、開発者コンソールにもエラーは表示されませんでした。 –

答えて

0

あなたのコードの変更のAjaxの一部と、以下に示すこのコードに置き換えます:

<script type="text/javascript"> 
$.ajax({ 
type:'POST', 
url:'testing2.php',  
data:new FormData($('#svf-form-4')[0]), 
cache: false, 
contentType: false, 
processData: false, 
success:function(msg){ 
$('#message').html(msg); 
} 
}); 
return false; 
</script> 

は、それが動作します願っています。

0

私は本当に働いていたかを説明傾けるが、それは私がこのコメントWhat does "async: false" do in jQuery.ajax()?

とインスピレーションのために、このページWhat does "async: false" do in jQuery.ajax()?に依存していましたが、より多くのポストの提出を可能になかった形をクリアようです。

これは成功コールバック

success: function (data) { 
      $("#home").trigger('reset'); 
      console.log(data); 
     }, 
関連する問題