2017-01-09 1 views
0

すべてがここに動作しますが、可能な場合は、を参照してくださいどこでも、私は、短い方法が必要です... 20の項目提出:短い道

<input type='text' id='inputname' maxlength='50' placeholder='Name' required> 
<input type='text' id='inputsname' maxlength='50' placeholder='Surname'> 
... and so on... 20 fields. 
<button id='btnregister'>Register</button> 

javascriptの

$('#btnregister').click(function(){ 
var name = $('#inputname').val(); 
var sname = $('#inputsname').val(); 
... 20 items 
$.ajax({ 
    url: 'regpro.php', 
    type: 'post', 
    data: { 
     'name': name, 
     'sname': sname, 
     ... 20 items 
     }, 
    success: function(data) { 
     if (data == 'exists') { 
      alert ('name allready exists'); 
     } 
     else if (data =='empty'){ 
      alert ('something is missing'); 
     } 
     else{ 
      location.href = 'login.php?ref="reg"'; 
     } 
    } 
}); 
}); 

regpro.php

$_POST = array_map('stripslashes', $_POST); 
extract($_POST); 
try { 
$stmt = $db->prepare('INSERT INTO members (name, sname... 20 items) VALUES (:name, :sname... 20 items)'); 
$stmt->execute(array(
    ":name" => $name, 
    ":sname" => $sname, 
    ... 20 items 
)); 
} 
catch(PDOException $e) { 
echo $e->getMessage(); 
} 

私は古典的なフォームを提出する代わりにジャバスクリプト側でいくつかの短い方法であることを知っているが、私は何かが間違っているので、入力したままにしておきたいので、あなたはシリアル化データによってこれを行うことができます
foreach post variable - find corresponding column - and insert variable value

+3

:' $のajax'機能で 'パラメータは、使用することができます:'データ:$( "#フォーム-ID")(シリアライズ)、 'の代わりに、それらを入力してくださいあなた自身。これは、フォーム内のすべての入力/選択などを含むオブジェクトを提供します。 –

+1

Btwは、プリペアドステートメントを使用しているため、 '$ _POST = array_map( 'stripslashes'、$ _POST);'行は不要で、予期せずデータを変更することがあります。 –

答えて

1

:PHP側では

は、おそらくこのような何かを言うする方法があります。これを試して。あなたの `データで

$('#btnregister').click(function(){ 
$.ajax({ 
    url: 'regpro.php', 
    type: 'post', 
    data: $('#your-form-id').serialize(), 
    success: function(data) { 
    ... 
    } 
}); 
});