使用jquery调用函数php

时间:2014-03-12 20:52:22

标签: php jquery ajax

你好我想用jquery调用一个函数。我尝试了很多方法而且无法得到它。 这是我的主要网页。 我正在上传一个文件csv并按下'Crear'按钮,它在调用该函数时上传文件。

    <html>
    <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
    <SCRIPT type="text/javascript">
       $(function (){
          $('#btnxml').click(function (){
             alert("aki");
             $('#contenidos').load('csv.php');
         });
      });
   </SCRIPT>
   </head>
   <body>
                        <form action="index.php" id="filecsv"  method="post" enctype="multipart/form-data">
                         <input type="file" multiple="multiple" id="file" name="up_csv[]"/>
                         <input type="submit" value="Cargar" name="btnxml" id="btnxml" /><br />
                         </form>
                          <?php
                         global $archivocsv;
                            //tipos de archivos permitidos
                   $extensionxml = array('csv','txt');
                   //destino
                   $rutaupcsv = './csv/';
                   //multicargador de archivos
                   $vt=0;
                   for($i=0;$i<count($_FILES['up_csv']['size']);$i++){
                       for ($j=-1; $j<count($extensionxml); $j++) {
                           if (strripos($_FILES['up_csv']['name'][$i], $extensionxml[$j])!== false)  {
                               $filename = 'lista';
                           $destino = $rutaupcsv.$_FILES['up_csv']['name'][$i];
                           $archivocsv = basename($_FILES['up_csv']['name'][$i]);
                           move_uploaded_file($_FILES['up_csv']['tmp_name'][$i],$destino);
                           $vt=$vt+1;   
                           break; 
                           }
                           $ns=1;
                           }
                           }
                          ?>
                        <div id="contenidos"></div>

csv.php

              <?php
        echo '<html>';
        echo '<head>';
         echo '<meta content="text/html;charset=utf-8" http-equiv="Content-Type">';
          echo '<meta content="utf-8" http-equiv="encoding">';
          echo '</head>'; 
          function makecsv() {
            global $archivocsv;
           $csv = './csv/' . $archivocsv;
           $doc = new DOMDocument();

          $row = 1;
          $handle = fopen($csv, "r");
         # Rows Counter
         $csvxrow = file($csv);
          $csvxrow[0] = chop($csvxrow[0]);
        $anzdata = count($csvxrow);
       while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
         $num = count($data);
         $row++;
             #Load Predefined XML Template      
             $xml2 = $xml;
             $xmlruta = './Templates/';
             $xml = $xmlruta.$data[1].'.xml';
              $doc->load($xml);  
              $xp = new DOMXPath($doc);
            for ($c=0; $c < $num; $c++) {

              foreach($xp->query('/ROOT/HEADER/@KEY[. != ""]') as $attrib)
              {
              $attrib->nodeValue = $data[0];
              }
               foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@AUFNR[. != ""]') as $attrib)
              {
              $attrib->nodeValue = $data[0];
              }
              foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@MATNR[. != ""]') as $attrib)
               {
               $attrib->nodeValue = $data[1];
              }
               foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GAMNG[. != ""]') as $attrib)
              {
               $attrib->nodeValue = $data[2];
               }
              foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1AFFLL/E1FVOL/@MGVRG[. != ""]') as $attrib)
              {
                 $attrib->nodeValue = $data[2];
               }
                 foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GSTRS[. != ""]') as $attrib)
             {
                   $attrib->nodeValue = $data[3];
                   }
                   foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GLTRS[. != ""]') as $attrib)
                   {
                $fecha = new DateTime($data[3]);
                $fecha->add(new DateInterval('P1M'));
                 $attrib->nodeValue = $fecha->format('Y-m-d');
                    }
              }
                     $name = $data[0] .'-'. $data[1];
                     $doc->formatOutput = true;
                echo $doc->saveXML();
                     $rutafinal = './XML/';
                     $doc->save($rutafinal.$name.'.xml');

                    }
                  fclose($handle);

                 echo $anzdata . " XML Creados" . "<br />";  

                 return $data;
                }
                   makecsv();
                   echo '</html>';
                 ?>

我无法调用该功能。 当我试着打电话时,它什么也没做。

编辑:我认为问题在于我的功能。功能edite

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

jQuery在客户端的浏览器中运行,而您的PHP在您的Web服务器上运行。如果您希望从jQuery代码调用PHP函数,最好的选择是使用AJAX。

您可以在此处找到有关在jQuery中实现AJAX调用的文档:https://api.jquery.com/jQuery.ajax/

答案 2 :(得分:-1)

您需要打印实际的html来执行此功能。

<强> PHP

<?php
    print '<script> makecsv() </script>';
?>