2017-12-02 4 views
-1

私はフォームページを再読み込みせずに、フォームページのdivに確認メッセージを表示せずに、phpでmysqlに複数のチェックボックスの値のデータを追加しようとしています。現時点では、divを表示してもデータは送信されません。フォームで、複数のチェックボックスのチェック値を取得し、PHPでリロードせずにmysqlに追加する方法と、divに確認メッセージを表示する方法は?

私はすでにテキストエリアと同じコードを持っているので、私はその部分を変更したので、これは動作しますが、これは動作しません。誰も私にここで助けてもらえますか?

形はvote.phpである:

<html> 
<form action="vote_received.php" method="post" target="" id="vote-submit"> 

<input type="hidden" name="recieved-date" id="todayDate" /> 

<input type="hidden" name="user-occup" id="user-occup" value="<?php $_SESSION['occupation']; ?>" /> 

<input type="checkbox" name="voting[]" value="How might we improve driver facilities such as lunch rooms or break rooms?" id="voting_1"> 
<label for="voting_1">How might we improve driver facilities such as lunch rooms or break rooms?</label> 

<input type="checkbox" name="voting[]" value="How might be increase driver security at night time?" id="voting_2"> 
<label for="voting_2">How might be increase driver security at night time?</label> 

<input type="checkbox" name="voting[]" value="How might we change the on-call communication with management?" id="voting_3"> 
<label for="voting_3">How might we change the on-call communication with management?</label> 

<input type="checkbox" name="voting[]" value="How might we enhance the passenger conflict management system?" id="voting_4"> 
<label for="voting_4">How might we enhance the passenger conflict management system?</label> 

<br><br> 
<input type="submit" name="submit" value="Submit" class="btn align-right"></form> 

<script> 
$("#vote-submit").submit(function(event) { 
    /* stop form from submitting normally */ 
    event.preventDefault(); 

    /* get some values from elements on the page: */ 
    var $form = $(this), 
    $messages = $("input[name='voting[]']"), 
    $occup = $form.find('input[name="user-occup"]'), 
    $submit = $form.find('button[type="submit"]'), 
    message_value = $messages.val(), 
    url = $form.attr('action'); 

    var posting = $.post(url, { submission : message_value}); 

    posting.done(function(data) { 
    /* Put the results in a div */ 
    $("#vote_success").html('<h2>THANK YOU!</h2><p>Thank you for your voting. Meeting invitations will be send out on December 7th, 2017.'); 
    /* Hide form */ 
    $form.hide(); 
    }); 
}); 
</script> 
</html> 

vote_received.phpは次のとおりです。

<?php 
session_start(); 
if(isset($_POST['vote-submit'])) { 
$voteArray=$_POST['voting']; 
$conn = mysqli_connect($servername, $username, $password, $database); 

if(is_null($voteArray)) { 
    echo("<p>You didn't select any topic.</p>\n"); 
    } else { 
     $N = count($voteArray); 

     for($i=0; $i < $N; $i++) { 
      $var1 = $voteArray[$i]; 
      $jobTitle = $_SESSION['occupation']; 

      $sql = "INSERT INTO vote_response (occupation, voting, 
created) VALUES('$jobTitle', '$var1', now())"; 

      $success = mysqli_query($conn, $sql); 

      if (!$success) { 
       die("Couldn't enter data: ".$conn->error); 
      } 
       echo $var1; 
       $conn->close(); 
     } 
    } 
} 
?> 

はどうもありがとうございました!

+0

あなたがそれを述べるが動作していないが、どのように動作していないのかを指定しません。問題の正確な性質を指定できる詳細を追加してください。 – Alan

+0

私が最初に言ったように、投票配列から集められたデータはデータベースに送られません。私はエラーコードが表示されないか、何が間違っているかわからない。 –

答えて

0

あなたのコードの更なる読書にあなたのコード

var $form = $(this), 
$messages = $("input[name='voting[]']"), 
$occup = $form.find('input[name="user-occup"]'), 
$submit = $form.find('button[type="submit"]'), 
message_value = [], 
url = $form.attr('action'); 
$.each($messages, function(idx, val){ 
    message_value.push($(val).val()); 
}); 

var posting = $.post(url, { submission : message_value}); 

のこの部分を変更しようと、また、あなたのコードのこの部分を変更しよう:

if(isset($_POST['submission'])) { 
    $voteArray=$_POST['submission']; 
+0

それは動作していない:( –

+0

私の編集を参照してください – am05mhz

+0

ありがとう! –

関連する問題