在 HTML 代码中调用 PHP 函数,在 PHP echo 语句中


calling a php function, within html code, within a php echo statement

好的,所以我看了AJAX,老实说,我很难理解我将如何将其应用于我的代码。Il 更深入地了解我正在尝试做什么,也许有人可以帮助我更好地了解如何合并 AJAX 调用。所以我有一个称为 add_signups 的函数,它接受 3 个参数并将一些数据插入到 mysql 表中。

function add_signup($society, $student_email, $event) {
    $member_fields = array('name','student_num','student_email',);
    $fields = '`' . implode('`, `',($member_fields)) . '`';
    $query = mysql_query("SELECT $fields FROM `$society members` WHERE `student_email`='$student_email'");  
    $elems = mysql_fetch_assoc($query);
    array_walk($elems, 'array_sanitize');
    $data = '''' . implode(''', ''', $elems) . '''';
    $result = mysql_query("INSERT INTO `$event` ($fields) VALUES ($data)");
}

我有另一种称为get_names的方法,它打印电子邮件地址列表。一旦用户单击其中一个电子邮件地址,我正在尝试调用 add_signup 方法,这会将该用户的电子邮件地址以及其他一些信息插入到表中。

function get_names($society, $event){
    $records= mysql_query("SELECT `student_email` FROM `$society members` ORDER BY `student_email`");
    while($emails = mysql_fetch_assoc($records)){
        echo ' <li style="cursor:pointer;" onclick="'  add_signup($society, $emails['student_email'], $event)  '); ">' .$emails['student_email'] . "</li>";         
}           

}

我不明白的是在使用 ajax 调用方面放在哪里。我想我需要将 add_signup() 方法放在一个单独的 php 文件中,然后在 html 文件中<script>标签中放置以下内容

function jsfunction(){
  $.ajax({
       type: "POST",
       url: "add_signupmethod.php",
       data: { "what to put here??" },
       success: " what to put here? "
  });

}

显然,我需要更改 OnClick 事件来调用 JS 函数,但这几乎是正确的吗?或者我什至需要使用 ajax,有没有更简单的方法?我已经坚持了将近两天了,令人沮丧的是我知道add_signup()函数在另一个函数之外测试它时可以工作。非常感谢任何帮助我解决这个问题的人。

原始消息

echo ' <li style="cursor:pointer;" onclick="'  add_signup($society, $emails['student_email'], $event)  '); ">' .$emails['student_email'] . "</li>";         

谁能帮忙?一旦单击列表元素,我就会尝试调用 php 函数,只有 html 代码由 echo 语句中的另一个 php 函数生成自身。

我不断收到语法错误,所以它是否这么简单,或者甚至有可能这样做? 如果没有,我该怎么做才能得到我想要的结果? 实际错误代码是

Parse error: syntax error, unexpected 'add_signup' (T_STRING), expecting ',' or ';' in C:'Users. . .

您在add_signup方法之前和之后缺少点(串联)。

echo ' <li onclick="document.write(' . add_signup($society, $names['name'], $event) . '); ">' . $names['name'] . "</li>"; 

这将摆脱您的语法错误。但是,它也将立即执行add_signup方法,而不是在单击按钮时执行。

要在单击按钮时调用它,请开始研究如何使 Ajax 调用客户端。