2015-03-13 80 views
-1

好吧,于是我查看了AJAX,说实话,我很难理解我将如何将它应用到我的代码中。 Il更深入地了解我正在尝试做什么,也许有人可以帮助我更好地理解如何合并AJAX调用。 所以我有一个函数,名为add_signups,它需要3个参数并将一些数据插入到mysql表中。 在html代码中调用一个php函数,在一个php echo语句中

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

只是为了澄清,你不希望当用户点击正确时运行PHP函数? – 2015-03-13 16:54:31

+0

[Call from php]函数的可能重复(http://stackoverflow.com/questions/7165395/call-php-function-from-javascript) – 2015-03-13 17:01:04

+0

我想要php代码在用户点击列表元素后运行。即时通讯相当新的PHP所以原谅我,如果我以完全错误的方式去了解它:p – mcgovec9 2015-03-13 17:29:07

回答

2

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

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

这将摆脱你的语法错误。但是,当按钮被点击时,它也将立即执行add_signup方法,并且而不是

要在点击按钮时调用它,请开始查看如何使Ajax调用客户端。

+0

il看着阿贾克斯JoeCoder,谢谢。 – mcgovec9 2015-03-13 17:30:57