php与javascript之间变量的传递方法总结

2016-02-22    编辑:future     点击(
js传值给php页面的文件有很多种,像ajax这种是最常用的传值给php了,但也可以直接像调用js一样调用php文件,也是可以传值给php的。

方法一

传递变量的代码
我们在 php 中可以
JavaScript 中使用变量

 代码如下 复制代码
$code = '<script>';
$code .= '/* <![CDATA[ */';
$code .= 'var global = {';
$code .=  'Url :http://www.111cn.net,';
$code .=  'name :"XiangZi"';
$code .= '};';
$code .= '/* ]]> */';
$code .='</script>';

//构建出,然后显示
echo $code;

使用变量很简单

 代码如下 复制代码

var myUrl = global.Url;
var myName = global.name;

PHP variable to Javascript variable:

 代码如下 复制代码


  <?php   $myvar=10;   ?>
  <script type="text/javascript">
    jsvar = <?php echo $myvar; ?>;
    document.write(jsvar);  // Test to see if its prints 10:
  </script>


Form variable to Javascript variable:

 代码如下 复制代码


  <form name="myform4">  
<input type="hidden" name="formvar" value="100">   
</form>
  <script type="text/javascript">
    jsvar = document.myform4.formvar.value;
    document.write(jsvar) // test
  </script>


PHP variable to Form variable:

 代码如下 复制代码


  <form name="myform4">
    <input type="hidden" name="formvar" value="<?php $phpvar=10; echo $phpvar; ?>"> // PHP code inside HTML!!
  </form>


Javascript variable to Form variable:

 代码如下 复制代码


  <form name="myform3">
    <!-- It needn't be a "hidden" type, but anything from radio buttons to check boxes -->
    <input type="hidden" name="formvar" value="">
  </form>

  <script type="text/javascript">
    jsvar=10;
    document.myform3.formvar.value = jsvar;
  </script>


ajax与php传值

这是 HTML 表单。它包含一个简单的 HTML 表单和指向 JavaScript 的链接:

 代码如下 复制代码

<html>
<head>
<script src="clienthint.js"></script>
</head>

<body>

<form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form>

<p>Suggestions: <span id="txtHint"></span></p>

</body>
</html>


JavaScript

JavaScript 代码存储在 "clienthint.js" 文件中,它被链接到 HTML 文档:

 代码如下 复制代码

var xmlHttp

function showHint(str)
{
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML=""
  return
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request")
  return
  }
var url="gethint.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("txtHint").innerHTML=xmlHttp.responseText
 }
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

"gethint.php" 中的代码会检查名字数组,然后向客户端返回对应的名字:

 代码如下 复制代码

<?php
// Fill up array with names
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";

$q=$_GET["q"];


if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
  {
  if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
    {
    if ($hint=="")
      {
      $hint=$a[$i];
      }
    else
      {
      $hint=$hint." , ".$a[$i];
      }
    }
  }
}


if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}

echo $response;
?>