簡體   English   中英

通過ajax,php,jquery傳遞復選框的值

[英]Pass the value of checkbox via ajax, php, jquery

美好的一天。 伙計們,我有一個問題。 我需要通過ajax將復選框值發送到php文件

我的問題是,無論是否檢查,我都希望在兩種情況下都傳遞值。 如果選中,則應傳遞value="true" ;如果不選中,則應僅傳遞內容中的值。 通過ajax jquery

注意

我知道應該使用if condition更新jquery(AJAX)文件中的代碼,但我不知道該怎么做

更新 -----

我已經按照以下答案解決了檢查條件的問題

在wallajax.php文件中,當我使用if(isset($_POST["content"]))我通過ajax獲取內容的值,並且還在頁面中重現其值

但是,當我使用if(isset($_POST["content"]) && isset($_POST["check"]) )未檢索到任何值,因此頁面上未顯示任何返回值

我不明白,問題出在哪里,它在ajax腳本還是wallajax.php文件上

我的代碼。

<script type="text/javascript">
$(function() {

$("#px").click(function() {
    var status2 = $("#status2").val();
     var checkit= $("#checkit").is(':checked');
       var dataString = 'content=' + status2 + '&check=' + checkit;
        $.ajax({
        type: "POST",
        url: "wallajax.php",
        data: dataString,
        cache: false,
        success: function(resol) {
        $('#wallposts').prepend(resol);
        console.log(resol)
              }
        }); return false;
    });

});
</script>

wallajax.php

if(isset($_POST["content"]) && isset($_POST["check"])  ) 
{
---fetched value------feed value in databse------
 }

index.php

<textarea name="content" id="status2"></textarea>
<input name="check" id="checkit" type="checkbox" value="true">check it</input>
<div id="px">Post</div>

代替

$("#checkit").val();

采用

$("#checkit").prop('checked');

要么

$("#checkit").is(':checked');

我會建議

var data = {'content': status2, 'check': checkit};

代替

var dataString = 'content=' + status2 + '&check=' + checkit;

您有兩個問題,您的dataString變量之間不包含“&”,並且復選框值未正確捕獲,下面修復了兩個問題:

<script type="text/javascript">
$(function() {

$("#px").click(function() {
    var status2 = $("#status2").val();
     var checkit= $("#checkit").prop('checked');
       var dataString = 'content=' + status2 + '&check=' + checkit;
        $.ajax({
        type: "POST",
        url: "wallajax.php",
        data: dataString,
        cache: false,
        success: function(resol) {
        $('#wallposts').prepend(resol);
        console.log(resol)
              }
        }); return false;
    });

});
</script>

php還有一個問題,當您以這種方式准備dataString時,您顯式地“設置”變量,因此

isset($_POST['check']) && isset($_POST['content']) 

總是會返回true,因此獲取數據的更好的方法是在表單上使用jquery的.serialize()方法,盡管我在您的html中看不到form元素,但我假設有一個

var dataString = $('yourForm').serialize();

暫無
暫無

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

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