【问题标题】:Ajax Posting always same valueAjax 发布总是相同的值
【发布时间】:2018-07-16 04:04:12
【问题描述】:

我正在处理通过 PHP 回显从数据库中检索并需要通过 Ajax 发布值的按钮组。这是关于创建产品主组、子组和产品的简短内容。

这是创建和列出按钮的代码:

 echo '
<a class="altgrup_al">
<input type="hidden" name="data_id" id="data_id" value="1">
<input type="hidden" name="san_RECno" id="san_RECno" value="'.$san_RECno.'">
<button type="button" class="btn btn-mini btn-primary" style="margin-
left:5px; margin-bottom:5px; height:80px; width:80px; white-
space:normal;">'.$san_isim.'</button></a>';

这是发布的ajax代码:

<script>
$(document).ready(function(){ 
$(".altgrup_al").click(function(e){
    e.preventDefault(); 
  var deger = document.getElementById('data_id').value;
  var sth_fatura_no = document.getElementById('sth_fatura_no').value;
  var san_RECno = document.getElementById('san_RECno').value; 
  $.ajax({ 
    type: "POST", 
    url: "altgrup_al.php", 
    data: {deger:deger, sth_fatura_no:sth_fatura_no, san_RECno:san_RECno}, 
    success: function(result){ 
      $("#alt_tablo").html(result); 
    }
   });
    });
   });
  </script>

我也尝试了 data-id 属性,但在任何风格的 ajax 发布中,

var san_RECno = document.getElementById('san_RECno').value;

这个值 = 1。

但是当我列出按钮并显示san_RECno 的值时,每个按钮都会显示自己的id 号。

我的 JavaScript 不够好,所以我需要帮助,为什么总是发布相同的 (1) 身份证号。

谢谢。

【问题讨论】:

  • 如果您有多个按钮具有相同的 id - 您做错了。 id 在页面上必须是唯一的。
  • 你为什么要把它包装在一个a标签中?将点击事件附加到按钮。
  • 你的 html 代码是否在循环中?
  • 每个按钮根据mysql表检索不同的id,回显在while循环中。
  • 我不确定,但我认为 san_RECno 正在获取第一个循环元素值 (id=1)。我点击哪个按钮都没关系。可以吗?

标签: php ajax


【解决方案1】:

第 1 步: 使用动态 ID 制作隐藏文本框(如果您使用循环,则将其计数与相同名称(如:id="data_id+ echo php 变量")并调用 JS 方法带有像

这样的参数

ONCLICK="saveData($('#data_id+ echo php 变量).val()')"

第 2 步:

function saveData(var dataid)
var deger = dataid;
 $.ajax({ 
    type: "POST", 
    url: "altgrup_al.php", 
    data: {deger:deger}, 
    success: function(result){ 
      $("#alt_tablo").html(result); 
    }
   });

【讨论】:

  • 这仅适用于 POST 一个变量。您可以使用更多参数来获取更多文本值
【解决方案2】:

创建和列出按钮的代码:

同时寻找PHP Buttons inside loop

<?php
$inc = 1; //define a varible which increment in loop
loop_start{ //loop like while,for,foreach

echo '
<a class="altgrup_al" data-id="'.$inc.'">
<input type="hidden" name="data_id" id="data_id'.$inc.'" value="1">
<input type="hidden" name="san_RECno" id="san_RECno'.$inc.'" value="'.$san_RECno.'">
<button type="button" class="btn btn-mini btn-primary" style="margin-left:5px; margin-bottom:5px; height:80px; width:80px; white-space:normal;">'.$san_isim.'</button></a>'

$inc++;
}
?>

这是发布的ajax代码:

<script>
$(document).ready(function(){ 
    $(".altgrup_al").click(function(e){
          e.preventDefault(); 
          var id = $(this).data('id');
          var deger = $('#data_id'+id).val();
          var sth_fatura_no = $('#sth_fatura_no'+id).val();
          var san_RECno = $('#san_RECno'+id).val(); 
          $.ajax({ 
            type: "POST", 
            url: "altgrup_al.php", 
            data: {deger:deger, sth_fatura_no:sth_fatura_no, san_RECno:san_RECno}, 
            success: function(result){ 
              $("#alt_tablo").html(result); 
            }
           });
    });
});
</script>

如果您已经有 jquery 库,请使用 jquery 而不是 javascript 来处理 getting input value

【讨论】:

  • 太棒了..!!非常感谢。
  • 有了这个帮助,产品的 sub_groups 可以完美地作为按钮列出,那么我如何将这种方式用于 sub_group 按钮?主组按钮 -> 子组按钮 -> 产品。每个列表都有一个按钮可以返回列表。单击主按钮后的示例,子按钮列出一个按钮,该按钮将返回主组。知道如何做整个工作系统吗?
  • 请创建聊天室以作进一步解释@Serter
  • 我无法创建新的聊天室,因为这里是新人。
  • 更好,我将其作为一个新问题提出
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 2019-10-22
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多