2010-11-02 75 views
0

我想通过使用jquery而不是通过POST来运行基于按钮单击的php函数。它是使用打印在表单上的数组数据的函数。这可能吗?通过jquery onclick事件运行PHP函数

+3

是的,这是可能的。 Next ... – Stephen 2010-11-02 19:00:08

+0

是的,这可能是可能的。你能告诉我们你到目前为止所写的内容,并解释你需要帮助吗? – lonesomeday 2010-11-02 19:00:45

回答

2

您不能运行从jQuery脚本PHP函数,并感谢上帝,你不能这样做。只要想一想它会如何危险。

无论如何,只要寻找AJAX。我认为只要写下你的代码就不会像提供你要研究的那样充分使用。因此,请去研究AJAX,以便您能够对PHP脚本进行异步调用,这将详细说明GET/POST变量并调用php函数。

或者只是看看jQuery的post()get()函数。

6

您正在寻找jQuery's Ajax functions.

你不能“跑”在JavaScript中一个PHP命令,但你可以到另一个PHP脚本的台异步调用,而不改变页面。

3

是的,这是可能的。只需使用jquery执行$ .get,然后调用php页面即可。那有意义吗?

3

如果通过“不通过POST”你的意思是“没有AJAX调用我的服务器上的PHP页面”,那么不,这是不可能的。如果你的意思是“没有POST”,那么是的,你可以使用GET。 :)

3

您将不得不使用POST或GET将HTML数据从页面传递到PHP函数。你不能直接从javascript调用PHP函数。您的PHP函数仅使用GET参数来检索数据吗?

您可以使用jQuery的AJAX功能之一:

var formData = $('#formName').serialize(); 
$.ajax({ 
    type: "GET",//change to POST if your PHP script can use it 
    url: "some.php",//file where your php function will be run. 
    data: formData, 
    dataType: 'JSON', 
    success: function(msg){ 
    alert("Data Saved: " + msg);//Will show an alert box if the GET was a success 
    } 
}); 

PHP:

$data = $_SERVER['GET']; 
print(saveData($data)); 

function saveData($arr){ 
    //Insert data into MySQL table 

    //display JSON encoded result for AJAX result 
    if(success) 
     return json_encode(true); 

    return json_encode(false); 
} 
+0

我并不是说你错了,而是来自jQuery的AJAX文档:*请求的类型(“POST”或“GET”),默认为“GET”。注意:其他HTTP请求方法(例如PUT和DELETE)也可以在此处使用,但它们不受所有浏览器支持。* – treeface 2010-11-02 19:19:33

+0

如果省略type参数,则GET为默认值。上面的例子说明了如何在需要的时候改变它。但是,在大多数情况下,只有在被调用的脚本需要的情况下,才会使用GET的唯一原因。 – 2010-11-03 01:36:50