2017-02-26 10 views
-2

私はウェブサイトのPHPをベースにしていますが、私はフォーム提出の質問があります。 は、例えば、私は私のindex.phpの中に次のような形式があります。そして、PHP - 同じファイルのデータベースに挿入

<form method='post' action='./insert_database.php'>  
<input type="checkbox" name="value[]" value="name1">'name1'</br> 
<input type="checkbox" name="value[]" value="name2">'name2'</br> 
<input type="checkbox" name="value[]" value="name3">'name3'</br> 
<input type="checkbox" name="value[]" value="name4">'name4'</br> 
<input type="checkbox" name="value[]" value="name5">'name5'</br> 
<input type="checkbox" name="value[]" value="name6">'name6'</br> 
<input type='submit' name='submit' value='submit'> 
</form> 

を、私は、チェックボックスをマークすることができますし、私はフォームを送信するとき、それはPOSTを介して別のURL「./insert_database.php」に行きます適切なクエリを起動します。

問題は私がこれを望まないということです。私は現在のページを離れたくありません。 フォームをバックグラウンドで実行し、index.phpにとどまりますか?私はinsert_database.phpでindex.phpに "リダイレクト"することができることを知っていますが、それは良い考えです。

つまり、フォームを送信するときにindex.phpからユーザーを移動させたくないということです。あるいは、フォームの値をデータベースに挿入する別のフォームが存在しますか?

ありがとうございます。


これは私のPHPコードである...私はより良い私の場合を説明してみましょう:

echo "<form>"; 
     if (is_dir($dir)){ 
      if ($dh = opendir($dir)){ 
       while (($file = readdir($dh)) !== false){ 
        if ($file !== '.' && $file !== '..'){ 
         echo ' 
         <input type="checkbox" class="song" name="song[]" value="'.$file.'">'.$file.'</br>'; 
        } 
       } 
       closedir($dh); 
      } 
     } 

    echo "<button id='submit'>Submit</button>"; 
echo "</form>"; 

この機能は、DIRを読んで、この内のすべての曲とチェックボックスでフォームを作成していますdir。次に、あなたが例えば5曲をチェックして、送信ボタンを押した場合、それは次のスクリプトを実行します。

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script> 
    $('#submit').click(function() { 
    $.ajax({ 
     url: "./functions/add_list.php", 
     type: "post", 
     data: $('.song:checked').serialize(); 
    }); 
    }); 

    </script> 

</head> 

をWheereは、データベース内の値を挿入するためにPHPコードを持っている./functions/add_list。 問題は、これは私のために働いていないと私は理由を知らない...私はアヤックスで新しいと私はこれで助けが必要です...私はこのフォーラムで解決策を見つけようとしましたが見つかりませんでした。

+0

何 '約するrequire_once( './ insert_database.phpを ');'と '<フォームメソッド=' ポスト'>' –

+4

可能[ページをリロードしないでフォームを送信する]の複製(0120-328-002) – Shadow

+0

この欲求は何度も尋ねられています。 – Shadow

答えて

0

バックグラウンドでリクエストを送信するためにAJAXを使用する方法があります。簡単に解決するjQueryのフォームのようなプラグインを使用し

http://malsup.com/jquery/form/

+0

次に、タイプ: "POST"コマンドでAJAX経由で値を送信すると、現在のページを離れずにチェックボックスがデータベースに挿入されますか?やってみます。ありがとう。 – Simpleacc

0
function submit_form() { 
    $.post("./insert_database.php", { 
      //the names of the keys being passed into POST 
      first_name: $("#tbxFirstName").val(), 
      last_name: $("#tbxLastName").val() 
     }, function(msg) { 
     //What gets returned by the PHP 
     console.log(msg); 
    }); 
}; 
関連する問題