Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Ajax中实现PHP foreach的这一确切功能?_Javascript_Php_Ajax - Fatal编程技术网

Javascript 在Ajax中实现PHP foreach的这一确切功能?

Javascript 在Ajax中实现PHP foreach的这一确切功能?,javascript,php,ajax,Javascript,Php,Ajax,我得到了如下令人满意的输出: 从这个php foreach循环(在查看和获取模型和控制器的详细信息时),我将根据以下条件从mysql数据库表中获取数据: <tfoot> <?php foreach ($orders as $k => $v) { $order_item = $this->vendor_model->getOrdersItemData($v['o_id']); ?> <tr&

我得到了如下令人满意的输出:

从这个php foreach循环(在查看和获取模型和控制器的详细信息时),我将根据以下条件从mysql数据库表中获取数据:

   <tfoot>
      <?php foreach ($orders as $k => $v) {     
         $order_item = $this->vendor_model->getOrdersItemData($v['o_id']); ?>
      <tr>
         <td><?php echo $v['o_id']?></td>
         <td><?php echo $v['t_id']?></td>
         <td><?php echo $v['grand_total']?></td>
         <td><?php echo $v['order_status']?></td>
         <!--Datavariable for orders-->
         <td>
            <table>
               <thead>
                  <tr>
                     <td>Product Name</td>
                     <td>Quantity</td>
                     <td>Price</td>
                  </tr>
               </thead>
               <tbody>
                  <?php foreach ($order_item as $k => $p) {
                     $product_item = $this->vendor_model->getProductData($p['product_id']); ?>
                  <tr>
                     <td><?php echo $product_item['product_name']?></td>
                     <td><?php echo $p['quantity']?></td>
                     <td><?php echo $product_item['product_price']?></td>
                     <!--data variable for order items-->       
                  </tr>
                  <?php }?>
               </tbody>
            </table>
         </td>
      </tr>
      <?php }?>
   </tfoot>
</table>

品名
量
价格
我尝试在ajax中这样做:

$.each(data, function(k, v) {
    var product_item = < ? = json_encode($this - > vendor_model - > getOrdersItemData("19", JSON_HEX_TAG)) ? > ;<!--Is there any way to get this "19 from data by loop"-->
    html += '<tr>' +
        '<td>' + v.o_id + '</td>' +
        '<td>' + v.u_id + '</td>' +
        '<td>' + v.grand_total + '</td>' +
        '<td>' + v.order_status + '</td>' +
        //'<td>'+k + ": " + v.t_id+'</td>'+
        //'<td>'+'<pre>'+JSON.stringify(data)+'</td>'+
        '<td>' + '<pre>' + product_item.oi_id + '</td>' +
        '<td>' +
        $.each(product_item, function(k, v) {
            html += '<table>' +
                '<tr>' +
                '<td>' + k + ": " + v.oi_id + '</td>' +
                '<td>' + '<pre>' + JSON.stringify(product_item) + '</td>' +
                '</tr>' +
                '</table>';
        }) +
        '</td>' +
        '<td>' +
        '<a href="javascript:;" class="btn btn-success item-view" data="' + this.o_id + '">View</a>' +
        '<a href="javascript:;" class="btn btn-info item-edit" data="' + this.o_id + '">Edit</a>' +
        '<a href="javascript:;" class="btn btn-danger item-delete" data="' + this.o_id + '">Delete</a>' +

        '</td>' +
        '</tr>';
});
$。每个(数据、函数(k、v){
var product_item=<?=json_encode($this->vendor_model->getOrdersItemData(“19”,json_十六进制标记))?>;
html+=''+
“+v.o_id+”+
“+v.u_id+”+
“+v.grand_总计+”+
“+v.订单状态+”+
//“+k+”:“+v.t_id+”+
//''+''+JSON.stringify(数据)+''+
''+''+产品项.oi\U id+''+
'' +
$。每个(产品、项目、功能(k、v){
html+=''+
'' +
“+k+”:“+v.oi_id+”+
''+''+JSON.stringify(产品项)+''+
'' +
'';
}) +
'' +
'' +
'' +
'' +
'' +
'' +
'';
});
我刚刚开始使用Ajax,在Ajax中有什么方法可以做到这一点,我知道在我的Ajax中也有很多错误


我想从ajax实现php forloop输出。

所以。。。如果您的问题是“如何在发出异步请求时获得相同的结果?”您可以这样做(我假设您有jquery或其他东西,如果没有,您可以在这里找到一个普通的js实现-可能不是最好的,我几年前写过,但应该这样做):

假设您的当前版本(php)位于“/myCurrentPhpEpicOutput”路径上

您的html+js可能如下所示:

$.each(data, function(k, v) {
    var product_item = < ? = json_encode($this - > vendor_model - > getOrdersItemData("19", JSON_HEX_TAG)) ? > ;<!--Is there any way to get this "19 from data by loop"-->
    html += '<tr>' +
        '<td>' + v.o_id + '</td>' +
        '<td>' + v.u_id + '</td>' +
        '<td>' + v.grand_total + '</td>' +
        '<td>' + v.order_status + '</td>' +
        //'<td>'+k + ": " + v.t_id+'</td>'+
        //'<td>'+'<pre>'+JSON.stringify(data)+'</td>'+
        '<td>' + '<pre>' + product_item.oi_id + '</td>' +
        '<td>' +
        $.each(product_item, function(k, v) {
            html += '<table>' +
                '<tr>' +
                '<td>' + k + ": " + v.oi_id + '</td>' +
                '<td>' + '<pre>' + JSON.stringify(product_item) + '</td>' +
                '</tr>' +
                '</table>';
        }) +
        '</td>' +
        '<td>' +
        '<a href="javascript:;" class="btn btn-success item-view" data="' + this.o_id + '">View</a>' +
        '<a href="javascript:;" class="btn btn-info item-edit" data="' + this.o_id + '">Edit</a>' +
        '<a href="javascript:;" class="btn btn-danger item-delete" data="' + this.o_id + '">Delete</a>' +

        '</td>' +
        '</tr>';
});

$(函数(){
$.ajax({
url:“/myCurrentPhpEpicOutput”,
方法:“get”,
成功:功能(结果){
$('loadStuffHere').html(结果);
}
});
});
这个选项基本上保持html生成在服务器端(您满意的那个),只需在需要的地方加载它

如果您的问题是“如何使用javascript和ajax请求编写相同的格式以获取原始数据?”

答案与此类似,但有一些调整:

让我们再次假设您的端点位于路由“/myCurrentPhpEpicData”上

您的php将类似于:


您可以在Ajax回调函数中执行此操作,但需要发回原始数据(json、xml)并为自己构建输出。这两种方法都有优点和缺点。我认为您对ajax的含义有点困惑。Ajax意味着异步JavaScript和XML(基本上是发送异步请求)。除此之外,根据您的愿望,您的问题有两种可能的答案。非常感谢您宝贵的时间和精力,但问题是我想根据以下多个数组来完成此操作:,一个数组来自具有o_id的订单_表,然后是具有数量和产品_id的订单_项目表,然后是产品表,以获取产品的详细信息,然后是订单项目到订单。
<?php
     // ..... bla bla get orders from somewhere
     echo json_encode($orders);
     die();

     // Actually I see you have codeigniter there so maybe return JsonResponse or something instead of echo + die (I haven't work on CI since 2011ish so... can't really remember its functions names but should have one that does that).
<body>
    <div id="loadStuffHere"></div>

    <script>
         $(function() {
             // This is the "load" you asked about in your question
             $.ajax({
                 url: '/myCurrentPhpEpicData',
                 method: 'get',
                 dataType: 'json',
                 success: function(data) {
                     // There are tons of variations on this... go wild
                     var computedHtml = '';
                     for (var i in data) {
                         var order = data[i];
                         // Here make your form html as a string (you did most of it in your question so you can copy paste and adapt that)
                     }
                     $('loadStuffHere').html(computedHtml);
                 }
             });
         });
    </script>
</body>