PHP通过AJAX回显JavaScript

时间:2017-08-19 11:36:49

标签: javascript php jquery ajax

我正在尝试将来自php文件的回显包含到javascript文件中。

我的php文件中有这段代码:

<?php
   ...I connect and load list from database here...

   for($i=0;$i<sizeOf($list_rows);$i++) {
      echo '"'.$list_rows[$i]['name'].'": null,';
   }
?>

以及我的JavaScript文件中的以下代码:

<script>
$('input.autocomplete').autocomplete({
   data: {
      HERE I WANT TO HAVE THE ECHO
   },
});

</script>

当我直接打开它时,php文件给了我正确的回声,但是我的javascript文件没有。你能救我吗?

4 个答案:

答案 0 :(得分:1)

您可以进行以下更改

<?php
   ...I connect and load list from database here...
   $echo_text = ''; 
   for($i=0;$i<sizeOf($list_rows);$i++) {
      $echo_text .= '"'.$list_rows[$i]['name'].'": null,';
   }
?>

<script>
$('input.autocomplete').autocomplete({
   data: {
      '<?php echo $echo_text;?>'
   },
});

</script>

答案 1 :(得分:0)

在php代码中的concat字符串

PHP代码

<?php

   $string = "";
   for($i=0;$i<sizeOf($list_rows);$i++) {
       $string.='"'.$list_rows[$i]['name'].'": null,';
   }

?>

在javascript中只是得到像这样的php变量 -

<script>
var res = '<?php echo $string; ?>';
alert(res);
$('input.autocomplete').autocomplete({
   data: {
      res 
   },
});

</script>

答案 2 :(得分:0)

试试这个:

<强> PHP:

<?php
   $names = [];
   for($i=0;$i<sizeOf($list_rows);$i++) {
      if($list_rows[$i]['name'] != ""){
        array_push($names, array('label' => $list_rows[$i]['name'], 'value' => $list_rows[$i]['name']));
      }
      //echo '"'.$list_rows[$i]['name'].'": null,';
   }
   $names = json_encode($names);
?>

<强> JS:

<script>
$('input.autocomplete').autocomplete({
   data: '<?php echo $names; ?>',
});
</script>

更多信息:https://jqueryui.com/autocomplete/#categories

答案 3 :(得分:0)

是否正确,我可以将php via放入javascript文件中?

我的第一个想法是在html中加载javascript文件,这个javascript加载外部php文件:/