0

チェックボックスは次のとおりです。

$qry_strings4 = "SELECT * FROM `Y new questions`";
$preps4 = $pdo_conn->prepare($qry_strings4);
            $preps4->execute();
           // $row = $preps4->fetch(PDO::FETCH_ASSOC);
        //echo "$count";
            echo "<table style='border:0px; background-color:lightgrey; width:75%'><thead style='border:0px;'><tr style='border:0px solid white; background-color:#153E7E; text-align:left; color:white; padding: 5; margin: 5;'><th style='border:1px white; padding: 5; margin: 5;'>Question</th><th style='border:1px white; padding: 5; margin: 5;'>Response</th></tr></thead><tbody>";
            while ($row = $preps4->fetch(PDO::FETCH_ASSOC)) {
                echo "<tr style='border:1px white; background-color:lightgrey; color:black; padding: 5; margin: 5;'><td style='border:1px white; vertical-align:top; padding: 5; margin: 5;'>{$row['starName']}</td>
                      <td style='border:1px white; padding: 5; margin: 5;'><div id='wrap'>                
<textarea cols='85' rows='2' name='question' id='{$row['questionID']}' class='response textbox'>{$row['question']}</textarea>";
echo "YES: <input type='checkbox' name='yes' value='yes'>
NO: <input type='checkbox' name='no' value='no'>";
            }
            echo "</tbody></table>";
            echo "<button type='button' class='save_btn' style='align:right'>Save All</button><br>";

js は次のとおりです。

$(function(){
  $(".save_btn").on('click', function(){
    //var check = $("input[no]").is(":checked")?2:1;
    var check = $("input[name='no']").is(":checked") ? 2 : 1;
    var questionID = $("textarea").attr('id');
    var question = $("textarea").val();
    $.post("response14.php",{
        //"questionID":$("textarea[name=question]").attr('id'),
        //"question":$("textarea[name=question]").html(),
        "questionID":questionID,
        "question":question,
        "approved":check
    });
      alert("saved");
      location.reload();  
    });
  }); 

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

include("db_conn.php");
$sql = "update questions set approved = ?, question = ? where questionID = ?";
$qc = $pdo_conn->prepare($sql);
$qc->execute(array($_POST['approved'], $_POST['question'], $_POST['questionID']));
echo 'Saved<br>';

レンダリングされた html は次のとおりです。

<textarea cols='85' rows='2' name='question' id='3792' class='response textbox'>no</textarea>YES: <input type='checkbox' name='yes' value='yes'>
NO: <input type='checkbox' name='no' value='no'><tr style='border:1px white; background-color:lightgrey; color:black; padding: 5; margin: 5;'><td style='border:1px white; vertical-align:top; padding: 5; margin: 5;'>Gavin Casalegno</td>
                      <td style='border:1px white; padding: 5; margin: 5;'><div id='wrap'>                
<textarea cols='85' rows='2' name='question' id='3793' class='response textbox'>yes</textarea>YES: <input type='checkbox' name='yes' value='yes'>
NO: <input type='checkbox' name='no' value='no'></tbody></table><button type='button' class='save_btn' style='align:right'>Save All</button>

はいのチェックボックスがチェックされている場合は 1 が表示され、チェックされていないチェックボックスがチェックされている場合は 2 が表示されるはずですが、常に 1 が表示されます - これは現在修正されています。

しかし、選択できるデータベース行が複数あり、現在、2 番目ではなく 1 番目のみを編集できるため、1 番目のデータベース行ではなく 2 番目のデータベース行を何を編集すればよいかわかりません。これを見せる

4

3 に答える 3

1

セレクターは、no属性を持つ入力を探しています。name属性には、これを使用する必要があります。

var check = $("input[name='no[]']").is(":checked") ? 2 : 1;
于 2013-09-19T21:05:34.177 に答える
1

構文を変更する必要があると思います:

var check = $("input[name='no[]']").is(":checked")?2:1;
于 2013-09-19T21:05:45.053 に答える
1

マークアップの名前のプロパティを変更します。たとえばskip name='no[]'、必要ない/役に立たない:

YES: <input type='checkbox' name='yes' value='yes'>
NO: <input type='checkbox' name='no' value='no'>";

より正確なセレクターを使用します:

var check = $("input[name='no']").is(":checked") ? 2 : 1;

そしてそれをテストします:

$('input[type="checkbox"]').click(function() {
    var check = $("input[name='no']").is(":checked") ? 2 : 1;
    console.log(check);
});
于 2013-09-19T21:10:36.800 に答える