在一个php echo语句中调用html代码中的php函数

时间:2015-03-13 16:50:08

标签: javascript php jquery html ajax

好的,所以我看了AJAX,说实话我很难理解我将如何将它应用到我的代码中。我会更深入地了解我想要做的事情,也许有人可以帮助我更好地理解如何结合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文件中,然后在<script>标签内的html文件中放入以下内容

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. . .

1 个答案:

答案 0 :(得分:2)

您错过了add_signup方法之前和之后的点(连接)。

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

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

要在单击按钮时调用此方法,请开始查看如何在客户端进行Ajax调用。