【问题标题】:php ajax multiple insert ı needphp ajax 多次插入我需要
【发布时间】:2020-03-17 12:51:30
【问题描述】:
            <div class="row">
                <?php 
                $sql=mysqli_query($conn,"select * from is_ilanlari");       
                while($oku=mysqli_fetch_object($sql))
                {    
                ?>
                <div class="col-md-4"> 
                    <aside class="profile-nav alt">
                        <section class="card">
                            <div class="card-header user-header alt bg-dark" >
                                <div class="media">
                                    <a href="#">
                                        <img class="align-self-center rounded-circle mr-3" style="width:100px; height:100px;" alt="" src="images/korucanta.jpg">
                                    </a>
                                    <div class="media-body">
                                        <h2 class="text-light display-6" style="size:10px;"><?php  echo $oku->is_ilanlari_baslik; ?></h2>
                                        <p>Görev süresi : <?php echo $oku->is_ilanlari_bekleme_suresi; ?></p>
                                    <div class="h4 mb-0" style="float:right;"></div>
                                    </div>
                                </div>
                            </div>
                            <ul class="list-group list-group-flush">
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa fa-money"></i><b> Para kazancı </b>
                                    <span class="badge badge-primary pull-right"> <?php echo $oku->is_ilanlari_kazanc; ?></span></a>
                                </li>
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa  fa-plus-circle"></i><b> XP kazancı  </b>
                                    <span class="badge badge-danger pull-right"><?php echo $oku->is_ilanlari_bp; ?></span></a>
                                </li>
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa  fa-clock-o"></i><b> Görev süresi</b>
                                    <span class="badge badge-danger pull-right" style="background-color:#35dccd; height:28px; text-color:white;">
                                    <p id="kutu1"><?php echo number_format($oku->is_ilanlari_bekleme_suresi); ?></p></span></a>
                                </li>
                                <li class="list-group-item">
                                    <form method="POST" id="degerler">
                                        <button type="button" name="buton<?php echo $oku->is_ilanlari_id; ?>" value="<?php echo $oku->is_ilanlari_id; ?>" class="btn btn-secondary btn-lg btn-block">KORUMAYA BAŞLA </button>
                                    </form>

<script>
$(document).ready(function() {
    $('button').on('click', function() {
        $("button").attr("disabled", "disabled");
        var is_id = $(this).val();
        if(is_id!=""){
            $.ajax({
                url: "isbaslat.php",
                type: "POST",
                data: {
                    is_id: is_id        
                },
                cache: false,
                success: function(dataResult){
                    var dataResult = JSON.parse(dataResult);
                    if(dataResult.statusCode==1){
                        //$("button").removeAttr("disabled");
                        $('#degerler').find('input:text').val('');
                        $("#success").show();
                        $('#success').html('İş Başladı !'); 
                        console.log("b");
                    }
                    else if(dataResult.statusCode==0){
                       alert("Error occured !");
                    }

                }
            });
        }
        else{
            alert('Please fill all the field !');
        }
    });
});
</script>

                                </li>
                            </ul>

                        </section>
                    </aside>
                </div> 
                <?php
                }
                ?>
            </div>

这是表单创建 php 和 ajax 你知道吗 ?

<?php
session_start(); 
include('baglanti.php');
include('fonksiyonlar.php');

    $kid=$_SESSION['kullanici_adi'];
    getir_kullanici($kid);  
    $k_id=$getir['kid'];

    $is_id=$_POST['is_id'];
    $sql = "insert into kullanici_is(is_ilan_id,kullanici_id,is_baslangic_tarih,is_durum) 
        values ('$is_id','$k_id','".date("Y-m-d H:i:s")."',1)";

    if (mysqli_query($conn, $sql)) {
        echo json_encode(array("statusCode"=>1));
    } 
    else {
        echo json_encode(array("statusCode"=>0));
    }
    mysqli_close($conn);

?>

这是插入php你可以看到

http://prntscr.com/rhrmp5 我想插入一行。但是这些按钮都单击并在数据库中插入了 8 行。 我如何插入刚刚点击的值。 我尝试了所有方法,请帮助我

我再试一次,但我做不到,请帮助我,我需要更多帮助。我在等

【问题讨论】:

  • 请显示用于创建表单的 PHP 以及用于处理提交数据的 PHP。
  • 你还能控制吗?
  • 在开发者工具中检查你的网络选项卡/XHR,如果你看到 8 个请求,那么你的选择器是错误的,使用一个类作为选择器,然后在点击事件上,this.val 将给出那个特定的值
  • 您为所有按钮提供了相同的 ID。所有元素都必须具有唯一的 ID。很有可能这是问题所在。
  • 所有元素都必须有唯一的 id。是的 ı now.ı 可以使用 id this var is_id = $(this).val();但是 ajax 来了 8 次,因为我有 8 个工作我有 8 个按钮我如何插入这个唯一的 id?

标签: php sql ajax


【解决方案1】:

问题:循环内的代码 解决方法:将js代码移到循环外,避免多实例,

为所有按钮使用一个类

$('.btn_class').on('click', function() {
 // now only the specific  btn is clicked
    $(this).val(); // will be of the clicked btn
     ...
 }

添加btn类

 <form method="POST" id="degerler">
     <button type="button" name="buton<?php echo $oku->is_ilanlari_id; ?>" value="<?php echo $oku->is_ilanlari_id; ?>" class="btn btn-secondary btn-lg btn-block btn_class">KORUMAYA BAŞLA </button>
 </form>

固定:

     <div class="row">
                <?php 
                $sql=mysqli_query($conn,"select * from is_ilanlari");       
                while($oku=mysqli_fetch_object($sql))
                {    
                ?>
                <div class="col-md-4"> 
                    <aside class="profile-nav alt">
                        <section class="card">
                            <div class="card-header user-header alt bg-dark" >
                                <div class="media">
                                    <a href="#">
                                        <img class="align-self-center rounded-circle mr-3" style="width:100px; height:100px;" alt="" src="images/korucanta.jpg">
                                    </a>
                                    <div class="media-body">
                                        <h2 class="text-light display-6" style="size:10px;"><?php  echo $oku->is_ilanlari_baslik; ?></h2>
                                        <p>Görev süresi : <?php echo $oku->is_ilanlari_bekleme_suresi; ?></p>
                                    <div class="h4 mb-0" style="float:right;"></div>
                                    </div>
                                </div>
                            </div>
                            <ul class="list-group list-group-flush">
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa fa-money"></i><b> Para kazancı </b>
                                    <span class="badge badge-primary pull-right"> <?php echo $oku->is_ilanlari_kazanc; ?></span></a>
                                </li>
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa  fa-plus-circle"></i><b> XP kazancı  </b>
                                    <span class="badge badge-danger pull-right"><?php echo $oku->is_ilanlari_bp; ?></span></a>
                                </li>
                                <li class="list-group-item">
                                    <a href="#"> <i class="fa  fa-clock-o"></i><b> Görev süresi</b>
                                    <span class="badge badge-danger pull-right" style="background-color:#35dccd; height:28px; text-color:white;">
                                    <p id="kutu1"><?php echo number_format($oku->is_ilanlari_bekleme_suresi); ?></p></span></a>
                                </li>
                                <li class="list-group-item">
                                    <form method="POST" id="degerler">
                                        <button type="button" name="buton<?php echo $oku->is_ilanlari_id; ?>" value="<?php echo $oku->is_ilanlari_id; ?>" class="btn btn-secondary btn-lg btn-block">KORUMAYA BAŞLA </button>
                                    </form>
                                </li>
                            </ul>

                        </section>
                    </aside>
                </div> 
                <?php
                }
                ?>
            </div>
 // move script outside the loop
<script>
$(document).ready(function() {
    $('button').on('click', function() {
        $("button").attr("disabled", "disabled");
        var is_id = $(this).val();
        if(is_id!=""){
            $.ajax({
                url: "isbaslat.php",
                type: "POST",
                data: {
                    is_id: is_id        
                },
                cache: false,
                success: function(dataResult){
                    var dataResult = JSON.parse(dataResult);
                    if(dataResult.statusCode==1){
                        //$("button").removeAttr("disabled");
                        $('#degerler').find('input:text').val('');
                        $("#success").show();
                        $('#success').html('İş Başladı !'); 
                        console.log("b");
                    }
                    else if(dataResult.statusCode==0){
                       alert("Error occured !");
                    }

                }
            });
        }
        else{
            alert('Please fill all the field !');
        }
    });
});
</script>

【讨论】:

  • 这和做$('button').on('click' ...没有什么不同
  • 你应该将你的 js 代码移到循环之外,然后它就会工作。我刚刚注意到,你的函数在循环内,它是 8 次,所以它一键触发 8 次
  • 当你想拥有一个动态或通用的功能时,像8个按钮但同样的动作,你只需要该功能的一个实例。
  • @AhmedSunny 我的眼睛 :( 抱歉 :) 我看到了。谢谢我的朋友解决了 :)
  • @AhmedSunny 您应该更改答案中的代码以反映实际解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 2020-03-11
  • 1970-01-01
相关资源
最近更新 更多