2016-10-31 68 views
1

我試圖評估所有的值選中的複選框並將結果傳遞給 HTML文本輸入我試圖使用PHP和AJAX的事,但我也沒有好的結果,請幫助 這是我的代碼: 如何將複選框值傳遞給使用Ajax和PHP的文本輸入?

$(document).ready(function() 
      { 

      $("#check").click(function() 
      { 
       var data = $("#check").val(); 
       //get selected parent option 

       $.ajax(
         { 
          type: "GET", 
          data:data, 
          url: "total.php?val="+data, 

          cache: false, 
          success: function (data) 
          { 

           $("#tot").html(data); 
          } 
         }); 
      }); 

     }); 
    </script> 

</head> 
<?php 

$conn = mysqli_connect("localhost", "root", "", "voucher_test"); 

    $result = mysqli_query($conn, "SELECT * FROM vouchers where cat_id = 1"); 
    while ($row = mysqli_fetch_array($result)) { 
     $userSet[] = $row; 
    } 

    ?> 

<form action="index.php" method="post"> 
    <?php 
      foreach ($userSet as $key=>$value){ 
       echo $value['service_name']."<input type='checkbox' id='check' name='{$value['service_name']}' value='{$value['service_price']}'>"; 

      } 
    ?> 
    <br> 
    <div id="tot"></div> 
</form> 

,這是total.php

<?php 
     $itot = 5; 
     $itot+=$_GET['val']; 
     echo"<input type='text' value='$itot'>"; 
+0

預期的/期望的行爲是什麼?究竟發生了什麼?不要只是轉儲一堆代碼,並說「它不工作」。這並不能幫助我們幫助你。就個人而言,我根本沒有看到PHP代碼的好處。從你所擁有的東西看,它可能都是在客戶端完成的。 –

+0

刪除您的ajax調用,並使用JS-only進行此操作。沒有理由爲此使用ajax和PHP。這隻會增加服務器的複雜性和額外的http往返行程並返回。 –

+0

此外,你不應該給你所有的複選框相同的ID。您的事件綁定將僅附加到具有該ID的第一個元素。你應該根據類來做事件綁定。 –

回答

0

您可以使用此代碼來發送值服務器yØn

var data = ($("#check").is(":checked") ? 'y' : 'n'; 

如果你想發送複選框的值,試試這個代碼:

var data = new FormData();//Create FormData 

if($("#check").is(":checked")){//Verified if the input os checked 
    data.append('data-check',$("#check").val());//Add data of the checkbox to FormData 
} 

$.ajax(
    { 
     type: "GET", 
     data: data, 
     url: "total.php", 
     cache: false, 
     success: function (data) 
       { 
        $("#tot").html(data); 
       } 
}); 

在尤爾PHP

$_GET['data-check']; 
+1

你的代碼中有一個類型(在'url:「total.php」''中缺少'''') – mrid

-1

我不認爲你需要使用總量。 php文件,但如果你真的想使用它,我建議你改變你的代碼:

<?php 
    $itot = 5; 
    $itot+=$_GET['val']; 
    echo"<input type='text' value='" . $itot . "'>"; 

唯一的變化是您要打印的字符串的連接

相關問題