【问题标题】:how to grab value from checkbox and input with jquery ajax如何从复选框中获取值并使用 jquery ajax 输入
【发布时间】:2019-07-16 17:57:46
【问题描述】:

为了回显选中复选框的值,我使用了这个 Ajax 代码:

HTML:

 <input type="checkbox" class="cb" value="PHP" /> PHP <br />  
 <input type="checkbox" class="cb" value="ASP" /> ASP <br />  
 <input type="checkbox" class="cb" value="JSP" /> JSP <br /> 

 <button type="button" class="values">Submit</button>

jQuery:

$('.values').click(function(){  
       var checkboxes_value = []; 

       $('.cb').each(function(){  
            //if($(this).is(":checked")) { 
            if(this.checked) {              
                 checkboxes_value.push($(this).val());                                                                               
            }  
       });                              
       checkboxes_value = checkboxes_value.toString(); 

       $.ajax({  
            url:"",  
            method:"POST",  
            data:{ checkboxes_value:checkboxes_value },  
            success:function(data){  
                 $('.echo').html(data);  
            }  
       });  
    });

PHP:

if(isset($_POST["checkboxes_value"])) {  
  $result = $_POST["checkboxes_value"];  
  echo  '<br />'.$result.'<br />';
} 

如何在同一个 Ajax 调用中按照相同的过程回显输入字段的值?

所以我的 HTML 将是:

<input type="checkbox" class="cb" value="PHP" /> PHP <br />  
<input type="checkbox" class="cb" value="ASP" /> ASP <br />  
<input type="checkbox" class="cb" value="JSP" /> JSP <br />  
<input type="text" class="text" value="" />

<button type="button" class="values">Submit</button>

【问题讨论】:

  • 请清除您的问题。您是否希望您的输入字段值基于选中的复选框?例如如果我们选择 PHP 复选框,在 Input 字段中我们会得到这样的 PHP?

标签: javascript php jquery ajax input


【解决方案1】:

我不确定您为什么使用 AJAX,因为您只返回通过 AJAX 发送的值。这样做怎么样:

$('.values').click(function(){
    var checkboxes_value = []; 

    $('input').each(function(){
        if(this.checked) {
            checkboxes_value.push($(this).val());
        }else if($(this).hasClass('text')){
            checkboxes_value.push($(this).val());
        }
    });                              

    checkboxes_value = checkboxes_value.toString(); 
    $('.echo').html(checkboxes_value);
});
div.echo{margin-top:50px;background:wheat;padding:50px;border:1px solid red;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<input type="checkbox" class="cb" value="PHP" /> PHP <br />  
<input type="checkbox" class="cb" value="ASP" /> ASP <br />  
<input type="checkbox" class="cb" value="JSP" /> JSP <br />  
<input type="text" class="text" value="" />

<button type="button" class="values">Submit</button>

<div class="echo"></div>

注意事项:

  1. 由于您要测试的元素都是input 元素,因此您可以循环遍历所有输入元素。

  2. 不需要 AJAX,因为它只会回显收到的内容。你可以在 javascript/jQuery 中做你想做的事。

【讨论】:

  • 我同意它是否只返回值。但我需要php中的值,所以我只用echo测试它是否有效。现在我可以将这些值绑定到一个 php 变量并用它做一些其他的事情。但是,你是对的,只是输出 html,我不需要 ajax。
  • 啊,我明白了。感谢您的回复 - 我认为它可能是这样的,但一个人永远不确定所以我认为我应该提到这一点,jic。
【解决方案2】:

所以你可以这样做

<input type="text" class="text" value="" />

你的 jquery

$('.values').click(function(){  
       var checkboxes_value = []; 
        var inputval=$(".text").val();//getting value of input field
       $('.cb').each(function(){  
            //if($(this).is(":checked")) { 
            if(this.checked) {              
                 checkboxes_value.push($(this).val());                                                                               
            }  
       });                              
       checkboxes_value = checkboxes_value.toString(); 

       $.ajax({  
            url:"",  
            method:"POST",  
            data:{ checkboxes_value:checkboxes_value,inputval:inputval},  
            success:function(data){  
                 $('.echo').html(data);  
            }  
       });  
    });

你的 php 代码

if(isset($_POST["checkboxes_value"]) && isset($_POST["inputval"]) ) {  
  $result = $_POST["checkboxes_value"];  
  echo  '<br />'.$result.'<br />';
echo  '<br />'.$_POST["inputval"].'<br />';
} 

【讨论】:

  • 正是我想要实现的! Thnx 的解决方案。效果很好!
  • 非常有帮助!
【解决方案3】:

也许是一个简单的 foreach 循环?

if(isset($_POST["checkboxes_value"])) {  
   foreach($_POST['checkboxes_value'] as $result){
       echo '<input type="checkbox" class="cb" value="' . $result . '" /> ' . $result . ' <br />';
   }
} 

【讨论】:

  • 我已经可以回显所选复选框的值了。但我想额外添加输入字段的值
  • 您希望文本输入的值包含已发布的复选框的所有值吗?我不太明白你需要什么。
  • 不,我只是想要额外输入的值。所以回显复选框的值回显输入的值
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 2016-12-31
  • 2017-08-13
  • 1970-01-01
  • 2020-01-16
相关资源
最近更新 更多