2015-03-13 78 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