簡體   English   中英

javascript類中未警告的jQuery最接近函數變為未定義的值

[英]Jquery closest function with class not alerting in javascript code become undefined value

我有一個浪費我幾個小時的代碼。 在這里,與類最接近的jQuery在html表中不起作用並且不傳遞值。 我在這里使用html,javascript,jquery和php。 任何人都可以重新編寫代碼。

<script>
$(document).ready(function () {
    $(".senddata").on("click", function () {
        var subans = 
 $(this).closest(".datadivision").find("input[name='subans']").val();
        var data = 'subans=' + subans;
        $.ajax({
            type: "POST",
            url: "test.php",
            data: data,
            cache: false,
            success: function (html) {
                alert(html);
            }
        });
    });
    });
 </script>

  <table>
  <tr class="datadivision">
  <input type="hidden" name="subans" value="A" >
  <td class= "senddata">       
  <label><input type="radio" name="subans" value="something"> This is a 
  line</label>     
  </td> 
 </tr>
 </table>

 <?php
  if (isset($_POST['subans'])) {
    $subans = $_POST['subans'];
   if (!empty($subans)) {
    echo $subans;
    }
   }
   ?>

假設您希望警報顯示值“ A” ,那么JavaScript就不是問題。 問題是,即使請求是POST ,也要打印整個頁面。

相反,僅當請求不是POST或不包含subans屬性時,才應有條件地打印頁面。 像這樣:

<?php
if (isset($_POST['subans'])) {
    $subans = $_POST['subans'];
    if (!empty($subans)) {
        echo $subans;
    }
} else {
    ?>
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <script>
      $(document).ready(function () {
        $(".senddata").on("click", function () {
          console.log(this)
          var subans =
            $(this).closest(".datadivision").find("input[name='subans']").val();
          var data = 'subans=' + subans;
          $.ajax({
            type: "POST",
            url: "stack.php",
            data: data,
            cache: false,
            success: function (html) {
              alert(html);
            }
          });
        });
      });
    </script>

    <table>
        <tr class="datadivision">
            <input type="hidden" name="subans" value="A" >
            <td class= "senddata">
                <label><input type="radio" name="subans" value="something"> This is a
                    line</label>
            </td>
        </tr>
    </table>
<?php
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM