javascript读取php函数

javascript读取php函数,php,javascript,Php,Javascript,如何让它工作。javascript应该通过返回读取php值并显示它 谢谢, <html> <body> <script type="text/javascript"> var _date = "<?= $xml = new DOMDocument(); $xml->load( 'http://web.com/public.xml' ); $elements = $xml->getElementsByTagName( "dat

如何让它工作。javascript应该通过返回读取php值并显示它

谢谢,

<html>
<body>
<script type="text/javascript">

var _date = "<?= 

  $xml = new DOMDocument();
  $xml->load( 'http://web.com/public.xml' );
  $elements = $xml->getElementsByTagName( "data" );

  $dates = $xml->getElementsByTagName( "i_data" );
  $_date = $dates->item(0)->nodeValue;
  return $_date;

 ?>";

alert(_date)
</script>
</body>
</html>

var\u date=“加载('http://web.com/public.xml' );
$elements=$xml->getElementsByTagName(“数据”);
$dates=$xml->getElementsByTagName(“i_数据”);
$\日期=$日期->项目(0)->节点值;
返回日期$\u;
?>";
警报(_日期)

使用
使用
echo
返回
。PHP是服务器端的,所以它需要将信息输出到页面,而不是“返回”到客户端<代码>返回
应在函数调用中使用

另外,为了安全起见,请使用长PHP标记(


使用return的替代方法:

<script>
  var _date = "<?php
    function getDate(){
      $xml = new DOMDocument();
      $xml->load( 'http://web.com/public.xml' );
      $elements = $xml->getElementsByTagName( "data" );

      $dates = $xml->getElementsByTagName( "i_data" );
      $_date = $dates->item(0)->nodeValue;
      return $_date;
    }
    echo getDate();
  ?>";
  alert(_date);
</script>

var\u date=“加载('http://web.com/public.xml' );
$elements=$xml->getElementsByTagName(“数据”);
$dates=$xml->getElementsByTagName(“i_数据”);
$\日期=$日期->项目(0)->节点值;
返回日期$\u;
}
echo getDate();
?>";
警报(_日期);

尝试以不同的方式组织:

<?php
  function giveDate(){
    $xml = new DOMDocument(); 
    $xml->load( 'http://web.com/public.xml' ); 
    $elements = $xml->getElementsByTagName( "data" ); 

    $dates = $xml->getElementsByTagName( "i_data" ); 
    $_date = $dates->item(0)->nodeValue; 
    return $_date; 
  }
?>

<script type="text/javascript"> 
  var _date = '<?=giveDate()?>';
  alert(_date) 
</script> 
load('http://web.com/public.xml' ); 
$elements=$xml->getElementsByTagName(“数据”);
$dates=$xml->getElementsByTagName(“i_数据”);
$\日期=$日期->项目(0)->节点值;
返回日期$\u;
}
?>
var_日期=“”;
警报(_日期)

您必须生成有效的javascript才能工作。如果从XML中获取的日期值是字符串,则必须用引号将其括起来。确保从PHP中获取有效javascript的最简单方法是使用json编码:

var _date = <?php ... xml stuff here ...; echo json_encode($_date); ?>;
var\u date=;

你是说echo,对吗?php函数不会存储在其他地方并由ajax访问吗?
json_encode
??当你只需要一根绳子的时候?我不认为这是最好的方法——这根本解决不了问题!是的。json encode保证您最终得到有效的javascript,而不管您回送的内容是什么。我同意这对于一个简单的日期串来说是过分的,但是这是一件容易养成习惯的事情,并且让你的生活变得更加轻松。这怎么解决不了问题?您没有向OP展示他/她所做的不起作用的原因。我的意思是,你的答案本身并不是错的,只是缺少一点背景,没问题。很高兴我能帮忙。请把答案标为最终答案。
var _date = <?php ... xml stuff here ...; echo json_encode($_date); ?>;