Я думаю, что все дали правильные ответы здесь, но они не самые хорошие или даже самые редкие примеры.
Давайте немного оживим ваш исходный код. Как уже говорили все, вам нужно написать немного PHP на стороне сервера, чтобы обрабатывать то, что передается jQuery, но сейчас всем даны довольно «статичные» версии этой методологии.
Хороший пример JS:
function new_user(auth_type, tr_id, user_name, email){
$.post("bookmark.php",{Function:doSomething, AuthType:auth_type, TR_Id:tr_id, UserName:user_name, UserEmail:email});
}
Вы можете видеть, что я добавил переменную для вызова функции " Function: doSomething ". doSomething()
будет функцией, выполняемой на стороне сервера.
Это хороший способ динамического вызова ваших функций, но ваши переменные все еще находятся вместе с этой функцией var. Это означает, что вам в конечном итоге придется написать код, чтобы получить каждый из них по отдельности, чтобы передать их в эту функцию (на стороне сервера). Не очень элегантно .. так мы напишем еще лучший пример ...
Новое и гораздо более классное, JS :
function new_user(auth_type, tr_id, user_name, email){
$.post("bookmark.php", {Function: doSomething, Data: [{ Authtype, TR_ID:tr_id, UserName:user_name, Email:email}] });
}
В этом новом примере вы можете видеть, что я обернул ваши вторичные переменные / данные в переменную Data. Таким способом проще передать несколько параметров в ваш файл / функцию PHP.
Теперь: злой, удивительный, масштабируемый bookmark.php
:
<?php
if(isset($_POST['Function'])){
call_user_func($_POST['Function'], $_POST['Data']);
}
doSomething($data=array()){
print_r($data);
}
?>
Как видите, все, что вам нужно добавить в ваш файл bookmark.php
, - это проверить, что переменная Function была передана, а затем использовать PHP call_user_func()
, который вызовет функцию для вас и передаст переменная Данные (это массив значений, которые вы отправляете в $.post()
).
Вы заметите, что я установил только один параметр для функции doSomething()
, которая ожидает массив. Это означает, что вы можете отправить любые параметры в эту функцию.
Любая функция может быть вызвана таким образом, и вы обнаружите, что упаковка всех ваших параметров в массив помогает поддерживать динамический и масштабируемый характер.
Если у вас есть какие-либо вопросы по поводу этого кода, не стесняйтесь спрашивать.