Javascript jquery调用php函数
我想使用jquery或ajax在php中调用函数 事实上。我用ajax获得了它,但我需要使用两个按钮。(提交并单击按钮) 我需要上传一个文本文件,然后调用一个php函数。 看看吧 index.php JS:Javascript jquery调用php函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想使用jquery或ajax在php中调用函数 事实上。我用ajax获得了它,但我需要使用两个按钮。(提交并单击按钮) 我需要上传一个文本文件,然后调用一个php函数。 看看吧 index.php JS: $(函数(){ $('#filecsv')。提交(函数(){ $('#contenidos').load('server.php'); }); }); 表格: Crear PHP->server.PHP include_once($_SERVER["DOCUMENT_ROO
$(函数(){
$('#filecsv')。提交(函数(){
$('#contenidos').load('server.php');
});
});
表格:
Crear
PHP->server.PHP
include_once($_SERVER["DOCUMENT_ROOT"].'/include/include.inc.php');
require_once ('common.php');
function check_session(){
global $db;
$objResponse = new xajaxResponse();
if (!isset($_SESSION)){
$objResponse->addRedirect("/logout.php");
}else{
$interval = TIMEOUT * 60 * 1000 + 1000;
$objResponse->addScript("setTimeout('xajax_check_session()',$interval);");
}
return $objResponse->getXML();
}
$xajax->processRequests();
##### PHP FUNCTION. Parser CSV to XML
session_start();
$filename = $_SESSION["var"];
$filepath = './csv/'.$filename;
function csv_in_array($csv) {
$doc = new DOMDocument();
$row = 1;
$handle = fopen($csv, "r");
# Rows Counter
$csvxrow = file($csv);
$csvxrow[0] = chop($csvxrow[0]);
$anzdata = count($csvxrow);
$xml2 = $xml;
$xmlruta = './Templates/';
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
$xml = $xmlruta.$data[1].'.xml';
$doc->load($xml);
$xp = new DOMXPath($doc);
$xmlcount = 0;
if (file_exists($filename)) {
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();
$ruta = './XML/';
$doc->save($ruta.$name.'.xml');
$xmlcount++;
}else{
$restantes = $anzdata - $xmlcount;
echo $xmlcount.' XML Creados'.' de '.$anzdata.'<br />';
echo 'El Template '.$data[1].'.xml'.' No existe' .'<br />';
echo $restantes . 'Restantes';
return 0;
}
}
fclose($handle);
echo $anzdata . " XML Creados" . "<br />";
return $doc->saveXML();
}
$csvdata = csv_in_array($filepath);
?>
include_once($_SERVER[“DOCUMENT_ROOT]”./include/include.inc.php');
一次需要_('common.php');
函数检查_会话(){
全球$db;
$objResponse=new xajaxResponse();
如果(!isset($\会话)){
$objResponse->addRedirect(“/logout.php”);
}否则{
$interval=超时*60*1000+1000;
$objResponse->addScript(“setTimeout('xajax\u check\u session()',$interval);”;
}
返回$objResponse->getXML();
}
$xajax->processRequests();
#####PHP函数。将CSV解析为XML
会话_start();
$filename=$\会话[“var”];
$filepath='./csv/'.$filename;
函数csv_在_数组中($csv){
$doc=新的DOMDocument();
$row=1;
$handle=fopen($csv,“r”);
#行计数器
$csvxrow=文件($csv);
$csvxrow[0]=印章($csvxrow[0]);
$anzdata=计数($csvxrow);
$xml2=$xml;
$xmlruta='./模板/';
while(($data=fgetcsv($handle,1000,“,”)!==FALSE){
$num=计数($data);
$row++;
$xml=$xmlruta.$data[1]。.xml';
$doc->load($xml);
$xp=新的DOMXPath($doc);
$xmlcount=0;
如果(文件_存在($filename)){
对于($c=0;$c<$num;$c++){
foreach($xp->query('/ROOT/HEADER/@KEY[.!=“”])作为$attrib)
{
$attrib->nodeValue=$data[0];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@AUFNR[.!=”“])作为$attrib)
{
$attrib->nodeValue=$data[0];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@MATNR[.!=”“])作为$attrib)
{
$attrib->nodeValue=$data[1];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GAMNG[.!=”“])作为$attrib)
{
$attrib->nodeValue=$data[2];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1AFFLL/E1FVOL/@MGVRG[.!=“”])作为$attrib)
{
$attrib->nodeValue=$data[2];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GSTRS[.!=”“])作为$attrib)
{
$attrib->nodeValue=$data[3];
}
foreach($xp->query('/ROOT/DATA/SAPMES/LOIPRO/E1FKOL/@GLTRS[.!=”“])作为$attrib)
{
$fecha=新日期时间($data[3]);
$fecha->add(新日期间隔('P1M');
$attrib->nodeValue=$fecha->format('Y-m-d');
}
}
$name=$data[0].-'.$data[1];
$doc->formatOutput=true;
echo$doc->saveXML();
$ruta='./XML/';
$doc->save($ruta.$name.'.xml');
$xmlcount++;
}否则{
$restantes=$anzdata-$xmlcount;
echo$xmlcount.'XML Creados'.'de'.$anzdata.
;
回显“El模板”。$data[1]。.xml.“不存在”。
;
echo$restantes.‘restantes’;
返回0;
}
}
fclose($handle);
echo$anzdata.“XML Creados”。
;
返回$doc->saveXML();
}
$csvdata=csv_数组中的_($filepath);
?>
我只想继续服从布顿。
这两件事都能做到吗?
上传文件然后调用函数?使用$.ajax
然后完成文件提交,然后在它返回并说“确定”后,您可以继续
或者按钮还需要执行其他操作
任何您想要激活的东西都可以通过jquery标记ID来实现
$('unique_id')。
或class$('unique_class)。
以及根据按下的按钮/提交
如果你想提交然后去获取数据
$('#filecsv').on('click', function (){
$.ajax({
type: 'POST',
data: {//serialize your form variable}
url: "server.php",//
// ...
}).done(function( msg ) {
//load your div here from submitted data
});;
});
我可以稍后补充这个答案,但要快 您可以通过jqueryclick触发ajax调用将所需的数据传递给php函数,然后将函数的结果转换为json。然后把它寄回去。这将使javascript/jquery和php保持分离 JAVASCRIPT 例: phppage.php
<?php
$username = $_POST['text1']; $data = array();
function hello($username){
...
$data[test] = $username; }
$data_push = json_encode($data);
echo $data_push;
?>
这将是console.log函数的值-此时您可以使用javascript或jquery做任何您想做的事情。您似乎忘记问问题了。我只想使用一个按钮,(输入提交)。做这两件事。。。上传文件和调用功能。我想做的第一个选择。。。提交文件,然后调用函数ans并在中显示结果。@ezos yup-successs或done将使他能够重新加载到divSry以解决我的(愚蠢的)问题。。。我从jquery开始。我是否需要在data:{}中设置一些内容?是的,data:{}用于将在另一端作为$_POST['']结束的变量。因此,数据:{var1:$('#some_id').val()}将作为$_POST['var1']在php中结束。当我说serialize时,基本上有一个简单的方法可以一次获取表单中的所有变量-通过一些示例进行查找,这会给你一个想法。好的。我将检查示例。但实际上我只需要发送上传文件的名称。('text.csv'),所以。。。我需要使用。。。数据:{varcsv:$('#file').val()},并在server.php$_POST['varcsv']中;对吧?我想用你的例子。。。不过,我开始使用jQueryAjax。看起来我想,我只想调用php函数并在--
$('#filecsv').on('click', function (){
$.ajax({
type: 'POST',
data: {//serialize your form variable}
url: "server.php",//
// ...
}).done(function( msg ) {
//load your div here from submitted data
});;
});
var operator_information = {INFO TO PASS - ex: username:text1}
// the php will take the _POST['username'] as the javascript variable value of text1
$.ajax({
type: "POST",
url: 'phppage.php',
cache: true,
data: operator_information,
dataType: "json",
success: function(data) {
var result = data;
console.log(result.test);
},
error: function() {alert('Error');},
complete: function(){
}
});
<?php
$username = $_POST['text1']; $data = array();
function hello($username){
...
$data[test] = $username; }
$data_push = json_encode($data);
echo $data_push;
?>