2017-01-13 25 views
1

データベース内のテーブルに配列を挿入しようとしています。私は動的にフィールドを追加してチーム名を追加することができます。私がしなければならないのは、これらの入力をテーブルに別々の行に挿入することですが、列に「配列」を入力するか、空のフィールドが読み込まれるだけです。データベーステーブルに配列を挿入する

<div id="exercises"> 
    <div class="team"> 
     <input type="text" name="teamName[]" /> 
     <button class="remove">x</button> 
    </div> 
</div> 

jQueryの作成新しい入力を処理します:私がそれを提出したいと思っています次に

<script type="text/javascript"> 
$('#add_exercise').on('click', function() { 
    $('#exercises').append('<div class="team"><input type="text" name="teamName[]"><button class="remove">x</button></div>'); 
    return false; //prevent form submission 
}); 

$('#exercises').on('click', '.remove', function() { 
    $(this).parent().remove(); 
    return false; //prevent form submission 
}); 
</script> 

をフォームの

HTML:私が午前のはここ

ですここでのデータベースはここにあります(セキュリティがなく、SQLインジェクションが可能であることを認識しています)。

<?php 

// Config 
include '../config.php'; 

// Get post data 
$teamName = $_POST['teamName']; 
$dashboardId = $_POST['dashboardId']; 

// Check if the daashboard exists already 
$sql = "INSERT INTO teams (team_name, dashboard_id) VALUES ('$teamName', '$dashboardId')"; 

if ($conn->query($sql) === TRUE) { 
    echo 'good'; 
} 

?> 

私が行うとのvar_dump nのテストは、私は次のことを得る提出:

array(2) { [0]=> string(6) "team 1" [1]=> string(6) "team 2" } 

だから私は名前を「チーム1」と別の名前で「チーム2で行を挿入したいと思いますname="teamName[]のような名前を持つ場合には「私はちょっとこだわっていますよう

任意の助けをいただければ幸いです...

+0

'name =" teamName [] 'のような名前を持つ場合、' $ _POST ['teamName'] 'は配列になるので、ループして1つずつ(またはバッチで)挿入する必要があります-insert-query)。 –

+0

どうすれば申し訳ありませんか?私はちょっと混乱しています。小さなデモで私に見せることができますか? – PhpDude

答えて

1

、そして$_POST['teamName']は配列になりますので、あなたそれをループして1つずつ(またはバッチ挿入クエリで)挿入する必要があります。

例:

$dashboardId = $_POST['dashboardId']; 

foreach($_POST['teamName'] as $teamName) { 
    if (empty($teamName)) { 
     // Empty value, continue to next iteration instead 
     continue; 
    } 

    //your db code 
} 

あなたは私がそれについての行くことはありませんので、あなたのコード内のSQLインジェクションのリスクを認識していると述べました。しかし、名前のいずれかに'文字が含まれているか、または\で終わっている場合は、エスケープされていないため、コードが破損することに注意してください。

+0

Magnus、ありがとうございました。 – PhpDude

+0

@PhpDudeそれがあなたのために働くならば答えを自由に感じてください。 –

+0

私はちょうど3分を待つ必要があります:) – PhpDude

関連する問題