Php 如何使用<;中的值更新my DB中的值;选择>;标记-(不是$\u POST)

Php 如何使用<;中的值更新my DB中的值;选择>;标记-(不是$\u POST),php,database,joomla,joomla1.5,Php,Database,Joomla,Joomla1.5,我想从或标记中获取值,但要使用功能单击按钮,而不是使用$\u POST。我做了一次尝试,但我在语法上有一个堆栈。在$\u POST的情况下如下所示: 我的表单中的按钮: <input class="" name="submit" type="submit" value="UPDATE" /> if (isset($_POST['submit']) or isset($_GET['submit'])){ $db =& JFactory::getDBO(); $query =

我想从
标记中获取值,但要使用功能单击
按钮,而不是使用
$\u POST
。我做了一次尝试,但我在语法上有一个堆栈。在
$\u POST
的情况下如下所示:

我的表单中的按钮:

<input class="" name="submit" type="submit" value="UPDATE" />
if (isset($_POST['submit']) or isset($_GET['submit'])){
$db =& JFactory::getDBO();
$query = "UPDATE table
             SET name = '".$_POST["name"]."',
                 lastname = '".$_POST["lastname"]."',
                 rank = '".$_POST["rank"]."'
           WHERE id=1";
$db->setQuery($query);
$db->query();}
<input class="" name="submit" type="submit" value="UPDATE" onclick="update()" />
function update(){
$db =& JFactory::getDBO();
$query = "UPDATE table
             SET name = ???,
                 lastname = ???,
                 rank = ???
           WHERE id=1";
$db->setQuery($query);
$db->query();}
现在我试着做这样的事情:

我的表单中的按钮:

<input class="" name="submit" type="submit" value="UPDATE" />
if (isset($_POST['submit']) or isset($_GET['submit'])){
$db =& JFactory::getDBO();
$query = "UPDATE table
             SET name = '".$_POST["name"]."',
                 lastname = '".$_POST["lastname"]."',
                 rank = '".$_POST["rank"]."'
           WHERE id=1";
$db->setQuery($query);
$db->query();}
<input class="" name="submit" type="submit" value="UPDATE" onclick="update()" />
function update(){
$db =& JFactory::getDBO();
$query = "UPDATE table
             SET name = ???,
                 lastname = ???,
                 rank = ???
           WHERE id=1";
$db->setQuery($query);
$db->query();}

但是调用
标记名的语法是什么?或者换句话说,他们的价值观

您混淆了在客户端(JS)上运行的代码和在服务器端(PHP)上运行的代码。JS在PHP完成后运行-因此,除非您提交表单(POST/GET)或使用AJAX,否则无法从JS“调用”PHP中的函数。

onclick called function javascript

函数javascript用ajax实现

例如:

$("#submitButtonId").click(function() {

    var url = "path/to/your/script.php"; // the script where you handle the form input.

    $.ajax({
           type: "POST",
           url: url,
           data: $("#idForm").serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });

    return false; // avoid to execute the actual submit of the form.
});

t如果只需单击按钮而不刷新或重定向浏览器,则必须使用$.ajax

1) 了解

2) 在按钮onclick=“update();”上添加事件处理程序

3) 创建ajax之类的东西:

function request(variable1,variable2,variable3){

        var request = $.ajax({
          url: "/server.php", // The address of you php script that will handle the request 
          type: "POST", // Method type GET / POST in this case POST (Similar to form submission methods....)
          data: { // What you send to the server 'VariableName' : VariableValue, in this case you assign the varaiables that were passed to the request function.
                'var1': variable1,
                'var2' : variable2,
                'var3': variable3
                },
          dataType: "json" // The response type you expect from the server
        })

        request.done(function(msg) // Function being called when everything is ok and server sends back data
        {
             console.log(msg) // handle the reply / data
        })

        request.fail(function(jqXHR, textStatus) // Something went wrong...
        {
            console.log(textStatus); // See the error report
            console.log(jqXHR);
        })

        request.complete(function(){
            console.log("Ajax request complete!"); // This will always be executed when a request has completed even if it failed. (Executes after .done and .fail)
        })


}
因此,您可以在每次单击按钮时调用的更新函数中执行此操作:

function update()
{
 var val1 = $.('#selectbox').val();
 var val2 = $.('#inputbox').val();
 var val3 = $.('#textarea').val();

 new request(val1,val2,val3);

}
请求/变量将使用POST方法发送,因此在php脚本中 您可以像处理表单一样处理它们

if(isset($_POST['var1']) && isset($_POST['var2']) && isset($_POST['var3']))
{
   $serverReply = doThings($_POST['var1'],$_POST['var2'],$_POST['var3']);

   //and this is how you reply to your client/browser in json format

   echo json_encode($serverReply);
}
请务必查看有关ajax通信的更深入教程。
网络上有很多这样的函数。

你知道
onclick=“update()”
指的是一个名为update的JAVASCRIPT函数,而不是一个同名的PHP函数,对吗?如果您想在没有实际表单POST的情况下将数据发布到服务器,那么您确实需要阅读AJAX。点击
onclick
是一个在浏览器中运行的JavaScript操作。如果不使用AJAX,你就无法合理地期望浏览器在服务器上执行代码。我建议你使用google javascript教程,看看jQuery的
on()
函数,而不是依赖
onclick
事件。好了,伙计们,我明白了。非常感谢你的回答!!!他们很有帮助!!!我会照哈菲丘克说的做。谢谢你的回答和网址!!!他们真的很有帮助。但是,正如我在您的示例的最后一部分所看到的,我必须使用
$\u POST
无论如何!!!是吗?你可以使用$来请求更多信息,但我不认为这是对你的限制。除非我错过了什么…爱国者之爱,小野马之手之手。。。哈哈哈!!!stackoverflow的某个人告诉我不要使用
$\u POST
,因为这对我的网站通常是危险的。是对话,看看评论。也许我误解了什么,谁知道呢。我的英语不是最好的!!!