【问题标题】:How to pick multiple rows of values of the same id value from the database and display in ajax?如何从数据库中选择多行相同id值的值并在ajax中显示?
【发布时间】:2017-03-25 07:50:56
【问题描述】:

我已经为按钮编写了代码,以使用 ajax 将值发送到 php 文件,如下所示:

<script>
$(document).ready(function(){
    $(".open-AddBookDialog").click(function(){
        var packageid = $(this).attr("data-id");
        var dataString =  'packageid='+ packageid;
        $.ajax({
            type: "POST",
            url:  "data1.php",
            data: dataString,
            cache: false,
            success: function(result1){
                var packagetype = package_type;
                alert(packagetype);                 
            }
        });
    });
});
</script>

这是我编写的按钮的 ajax 代码。我的按钮代码是:

   <a data-toggle="modal" id="custId" data-name="<?php echo $arr["package_name"]; ?>" data-id="<?php echo $arr["id"]; ?>" href="#myModal" class="open-AddBookDialog btn btn-submit" OnClick='change(this);'>Book / Enquiry / Pay</a>

当点击href中的这个按钮时,我想使用ajax将一个id值发送到一个php文件。

data1.php

<?php
include('database.php');
$id=$_POST['packageid'];
$query1 = mysqli_query($con,"select * from ayurveda_packagetypes where package_id = '$id'");
$arr = mysqli_fetch_array($query1);
echo $arr['package_type'];
echo $arr['package_price'];
mysqli_close($con); 
?>

使用 id 值,我想从数据库中选择多行具有相同 id 值的包裹类型和包裹价格。选择多行这些值后,我想将其发送到主 php 文件并显示所有从数据库中选取的所有行的值。

谁能建议如何做到这一点?

【问题讨论】:

  • 你的ajax调用很好,问题出在你的PHP代码上。它只获取第一条记录。检查这个stackoverflow.com/questions/6481806/…
  • 它甚至没有在 ajax 代码中显示第一行......我什至没有得到这些值......
  • @lena 看下面,我已经为你添加了完整的代码。

标签: php ajax


【解决方案1】:
    <script>


          $(document).ready(function()
            {
                $(".open-AddBookDialog").click(function()
                    {
                        var packageid = $(this).attr("data-id");
                        var dataString =  'packageid='+ packageid;
                        $.ajax(
                            {
                                type: "POST",
                                url:  "data1.php",
                                data: dataString,
                                cache: false,
                                success: function(result)
                                {
                                    resultJson=jQuery.parseJSON(result);
                                    $.each(resultJson.packageDetails, function(i, item) {
                                        var packagetype = item.package_type;
                                        var package_price = item.package_price;
                                        alert("packagetype :- "+packagetype+"    ----- package_price :-"+package_price);
                                    }); 
                                }
                            });
                    });
            });


 </script>
 <?php

          include('database.php'); 
          $id=$_POST['packageid']; 
          $query1 = mysqli_query($con,"select * from ayurveda_packagetypes where package_id = '$id'"); 
          //$arr  = mysqli_fetch_array($query1); 
          while( $strPackageResult=mysqli_fetch_array($query1,MYSQLI_ASSOC) )
        {  $ArrPackage[]=$strPackageResult;  }
        if( isset($strPackageResult) ){  unset($strPackageResult);  }
        mysqli_free_result($query1);
        if( isset($query1) ){  unset($query1);  }
            $myResultPackageArray=array();
            if( isset($ArrPackage) && is_array($ArrPackage) && count($ArrPackage)>0 ) {
                $tempArray=array();
            foreach( $ArrPackage as $tempPackage )
            { 
                $tempArray['package_type']=$tempPackage['$tempPackage'];
                $tempArray['package_price']=$tempPackage['package_price'];
                $myResultPackageArray['packageDetails'][] =$tempArray;
            }  
        } 
         mysqli_close($con); 
         echo json_encode($myResultPackageArray);


   ?>

【讨论】:

  • 它会失败,因为 json 根是数组,所以你需要迭代 resultJson 成功。否则会报错
  • 它的警报为 packagetype :- "+undefined+" ----- package_price :-"+undefined.y 是这样的吗?
  • 成功:function(result) { $.each(resultJson.error, function(i, item) { var packagetype = item.package_type; var package_price = item.package_price; alert("packagetype :- "+packagetype+" ----- package_price :-"+package_price); }); } 用这个替换 sucess 函数,然后重试。对不起我的错误
  • 我已经编辑了答案,请立即查看。抱歉我的错误。
  • @lena 现在请尝试。
【解决方案2】:

你应该先了解一些基本的事情,然后你可以很容易地纠正你的错误。

这不是你问的,但作为一名程序员,我会建议你完成它。

通过你的代码

var packagetype = package_type;

package_type 未定义。如果您使用 chrome 检查元素并检查控制台,您将看到错误。

希望这会奏效。

【讨论】:

  • 这是编程的基础。所有的程序员都应该意识到这一点。
猜你喜欢
  • 2020-04-25
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多