如何在php foreach循环中调用javascript函数

时间:2017-11-05 07:34:37

标签: javascript php

美好的一天,我在为每个循环调用php内部的ajax函数时遇到麻烦,我的代码的目标是创建一个动态的评论和评论计数,我的问题是控制台说我的函数不是定义

这是我调用我的脚本的地方,它在foreach循环中,请注意。

char check[] = "05634";
char pass[4];
// printf("enter the user name\n");
// scanf(" %s",check);
printf("enter the password\n");
scanf(" %s", pass);
char ch;
char ultra[100];

// char filespec[strlen(check)+1];
// snprintf(filespec,sizeof(filespec),"%s",check);

int fd;
if ((fd = open(check, O_RDONLY)) != -1) {
  // ch=fgetc(fp1);
  int i = 0;
  int flag = 0;
  read(fd, ultra, 100);
  // ultra[i]='\0';
  char *token = strtok(ultra, "\n");
  while (token != NULL) {
    printf("the token is %s\n", token);
    if (strcmp(pass, token) == 0) {
      flag = 1;
      break;
    }
    token = strtok(NULL, "\n");
  }
  if (flag == 1) {
    printf("success\n");
  } else {
    printf("hry");
  }

  close(fd);
} else {
  perror(" cl");
}



这是我的脚本代码

repositories {
    jcenter()
    google()
}

2 个答案:

答案 0 :(得分:1)

您可以像这样简单地在PHP文件中调用java脚本。

<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<?php

$arr = array('1','2','3','4','5','6','7');

foreach($arr as $val){
    echo "<script type='text/javascript'>$( document ).ready(function() {
    alert( '".$val."');
});</script>";
}
?>
</html>

答案 1 :(得分:1)

您在定义之前调用该功能

在这里,我们可以为您的问题做一个最小范例:

&#13;
&#13;
<div class="col s12 com_app_count_section">
   <script>
       count_app_and_com('10');
   </script>
</div>

<script>
    function count_app_and_com(discussion_id_val){
        console.log(discussion_id_val);
    } 
</script>
&#13;
&#13;
&#13;

在这里你可以看到,通过使用超时,我们显示在调用之后定义了该函数。超时允许在执行执行的代码等待时注册该函数。这是一种调试问题的简便方法,因为您不必移动代码。然而,除非你的名字是特雷弗,否则它并不是真正的修复......

&#13;
&#13;
<div class="col s12 com_app_count_section">
   <script type="text/javascript" >
       setTimeout(function(){
           count_app_and_com('10');
       },1000);
   </script>
</div>

<script type="text/javascript" >
    function count_app_and_com(discussion_id_val){
        console.log(discussion_id_val);
    } 
</script>
&#13;
&#13;
&#13;

所以简单的解决方法是在foreach中的脚本块之前放置第二个脚本块(定义函数的块)。例如,将函数定义放在文档的<head>中。首先定义函数:

&#13;
&#13;
<script>
    function count_app_and_com(discussion_id_val){
        console.log(discussion_id_val);
    } 
</script>

<div class="col s12 com_app_count_section">
   <script>
       count_app_and_com('10');
   </script>
</div>
&#13;
&#13;
&#13;

最后一个例子说明了这是一个容易犯的错误,这是违反直觉的。当放置在相同的<script>标记中时,它可以正常工作。我确信这有一些奇特的技术原因:

&#13;
&#13;
<script>
    count_app_and_com('10');

    function count_app_and_com(discussion_id_val){
        console.log(discussion_id_val);
    } 
</script>
&#13;
&#13;
&#13;