繁体   English   中英

你如何将javascript变量输入到php脚本中?

[英]How do you input javascript variable into php script?

我正在尝试获取一个调用带有输入的php函数的函数。

javascript函数(picNum是一个整数):

function hello(picNum) {
   var pictureNumber = picNum;

   var phpFunc = "<?php 
      include 'otherfile.php';
      otherFileFunc(" + pictureNumber + ") //This is where the problem is, the input(pictureNumber) wont go through
   ?>";
   echo phpFunc;
}

otherfile.php

<?php
   function otherFileFunc($i) {
      $final = $i + 1;
      echo $final;
   }
?>

这个代码几乎说如果你做onclick =“hello(1)”那么输出或phpFunc应该是2,因为你在otherfile.php中添加一个,但无论输入输出总是1所以我猜我标记的地方的输入没有通过。

不要告诉我它没有工作,因为它做到了。 如果我把一个整数而不是“+ pictureNumber +”它完美地工作!

任何帮助表示赞赏:)

不幸的是,你无法从javascript调用php。

Php是从服务器运行的,javascript是在客户端上运行的(通常,例外是node.js.但是即使在node.js的实例中,也没有使用php,因为javascript已经取代了它的功能)

如果你需要让javascript“调用”一个服务器函数,你需要查看ajax请求,以便服务器可以运行一个函数并将其返回给客户端。

你必须使用Ajax兄弟:

使用Javascript:

 function hello(picNum) {
   var pictureNumber = picNum;
   $.ajax({
     url: "otherfile.php",
     data: {"picNum":pictureNumber},
     type:'post',
     dataType:'json',
     success: function(output_string){
       PictureNumber = output_string['picturenumber'];
       alert(PictureNumber);
     }
   });
 }

PHP otherfile.php:

$picNum = $_POST['picNum'];
function otherFileFunc($pic){
  $final = $pic + 1;
  return $final;
}
$outputnumber = function($picNum);
$array = ('picturenumber' => $outputnumber);
echo json_encode($array);

注意:未经测试

编辑,测试:

JavaScript的:

function hello(picNum) {
   var pictureNumber = picNum;
   $.ajax({
     url: "otherfile.php",
     data: {"picNum":pictureNumber},
     type:'post',
     dataType:'json',
     success: function(output_string){
       pictureNumber = output_string['picturenumber'];
       alert(pictureNumber);
     }
   });
 }
hello(1); //sample

PHP otherfile.php:

$picNum = $_POST['picNum'];
$picNum = 1;
function otherFileFunc($pic){
  $final = $pic + 1;
  return $final;
}
$outputnumber = otherFileFunc($picNum);
$array = array('picturenumber' => $outputnumber);

echo json_encode($array);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM