doudao1950 2018-02-23 05:43
浏览 63
已采纳

显示复选框所选项目的结果

I am calling Api : $url = 'https://plapi.ecomexpress.in/track_me/api/mawbd/?awb=awbnumber&order=' . $orderrecords[$k]["order_id"] . '&username=admin&password=admin123'; and fetching Status results of all Order IDS & displaying in php page when we refresh php page.

But I dont want to Call APi everytime when we refresh page. But When i select Order IDs through checkbox, than when i click on button "Show Status" , than only i want to Call Api & update the Selected Order IDs status in web page.

Url Output

enter image description here

enter image description here

PHP

<?php

           $tabindex=1;
          function checkecomstatus($orderid)
          {
            $data['username']='admin';
            $data['password']='ouhk78epe34csmed46d';
            $data['awb']=$orderid;

            $url = 'https://plapi.ecomexpress.in/track_me/api/mawbd/?awb=awbnumber&order='.$orderid.'&username=admin&password=ouhk78epe34csmed46d';
            $ch = curl_init();                    
            curl_setopt($ch, CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_POST, true);  
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);         

            $output = curl_exec ($ch); 
            curl_close($ch);
            $res = explode("
",$output);

            if ( ! isset($res[13])) 
            {
               $res[13] = null;
            }
            $status = str_replace('</field>.','',$res[13]);
            $statusfinal = str_replace('<field type="CharField" name="status">','',$status);
            if($statusfinal!='') 
            {
            $sqlecom = "UPDATE do_order set in_transit='".$statusfinal.".',tconformed_by='Ecom' where order_id=".$orderid;
            $db_handleecom = new DBController();
            $resultecom = $db_handleecom->executeUpdate($sqlecom);      
            }

            return $statusfinal;
          }

?>                  
         <p><button type= "button" >Show Status</button></p>
          <table class="tbl-qa" border="1">
           <thead>
            <tr>            
              <th class="table-header">ID</th>
              <th class="table-header">ORDERID</th>            
              <th class="table-header">Status</th>         
            </tr>
          </thead>
          <tbody id="table-body">
          <?php

          if(!empty($orderrecords)) 
          {
            foreach($orderrecords as $k=>$v) 
            {?>
              <tr class="table-row" id="table-row-<?php echo $orderrecords[$k]["id"]; ?>" tabindex="<?php echo $tabindex;?>">
                <td><input type="checkbox" onclick="assignorderids('<?php echo $orderrecords[$k]["order_id"]; ?>')" name="assigneeid" id="assigneeid-<?php echo $orderrecords[$k]["order_id"]; ?>" value="<?php echo $orderrecords[$k]["order_id"]; ?>"></td>

                <td><?php echo $orderrecords[$k]["order_id"]; ?></td>

               <td><?php echo checkecomstatus($orderrecords[$k]["order_id"]);?></td>           

            </tr>
            <?php 
            $tabindex++;
            }
          }?>
          </tbody>
        </table> 
        <input type="hidden" name="ordercheckallIDs" id="ordercheckallIDs" value="<?php echo $ordercheckall;?>"/> 

Javascript

function assignallorderids()
  {
   var checkstatus=$("#checkall").is(":checked");

    if(checkstatus==true)
    {
      var id=document.getElementById("ordercheckallIDs").value;  
      document.getElementById("orderids").value=id;
      $("input:checkbox[name='checkassigneeid']").prop('checked',true); 
    } 
    else
    {
      $("input:checkbox[name='checkassigneeid']").prop('checked',false);  
      document.getElementById("orderids").value='';
    }    
  }

    function assignorderids(oid)
    {
       var checkstatus=$("#assigneeid-"+oid).is(":checked");       
        var morderId =document.getElementById("orderids").value;
        if(checkstatus==false)
        {
            var arrayorder = JSON.parse("[" + morderId + "]");
            document.getElementById("orderids").value='';
            for (var i = 0; i < arrayorder.length; i++) {           
                var orderstatusValue=arrayorder[i];
                if(orderstatusValue!=oid){
                    if (document.getElementById("orderids").value=='')
                    {
                        document.getElementById("orderids").value=orderstatusValue; 
                    }
                    else
                    {
                        var newvalue=document.getElementById("orderids").value;
                        document.getElementById("orderids").value=newvalue+","+orderstatusValue;                        
                    }
                }                       
            }
        }
        else
        {
            if(morderId=='')
            {
                document.getElementById("orderids").value=oid;
            }
            else
            {
                document.getElementById("orderids").value=morderId+","+oid;
            }
        }
    }
  • 写回答

1条回答 默认 最新

  • douwen9343 2018-02-23 05:53
    关注

    This seems like you don't know about jQuery basics. If you can grab data from API but is firing on refresh then put it in trigger fire approach. something like if you have fetchData() function which fetches data from API as per the checkbox then don't fire it directly instead do something like $('#fetch-button-id').click(function() { fetchData(); });

    and if you have just put fetch data from api code directly into document then add those code into function then call it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址