为了账号安全,请及时绑定邮箱和手机立即绑定

javascript、ajax 更新 MYSQL 单元时出现 500 错误

javascript、ajax 更新 MYSQL 单元时出现 500 错误

PHP
慕的地8271018 2024-01-19 20:58:28
jquery.js?ver=1.12.4-wp:4POST https://xyz/update.php 500(内部服务器错误)发送@jquery.js?ver=1.12.4-wp:4ajax @ jquery.js?ver=1.12.4-wp:4 myFunction @ 6011c7fbf.min.js?ver=1600216310:3 onclick @ (index):453我从控制台收到上面的 500 错误。我不知道错误是否出在我的 PHP 尝试更新行或其他地方。下面的PHP包含在我的 update-file.php 文件中function function_1() {    global $wpdb;$wpdb->query( $wpdb->prepare("UPDATE 'my_table_name' SET `currentstatus` = 'myupdate1' WHERE ID = '1'"));   }页面中包含JAVASCRIPTfunction myFunction() {      jQuery.ajax({    type: 'post',    url: '/wp-content/themes/yummy/update-file.php',    success: function(data){        // callback function    }});  alert("I've been clicked!!");}超文本标记语言去!编辑1根据建议我已更新如下:Java脚本语言jQuery.ajax({    type: 'post',    url: my_ajax.ajax_url,    action: 'function_1',    success: function(data){        // callback function    }});认为上述不正确我也尝试过:jQuery.ajax({    type: 'post',    url: my_ajax.https://myurl.com/wp-content/themes/yummy/update-waitinglist.php, // this is the location of the update php below    action: 'function_1',    success: function(data){        // callback function    }});下面的PHP包含在我的 update-file.php 文件中add_action('wp_ajax_function_1', 'myfunctionname'); // logged in user can make a calladd_action('wp_ajax_nopriv_function_1', 'myfunctionname'); // non logged in user can make a callfunction myfunctionname() {    global $wpdb;    $results = $wpdb->query( $wpdb->prepare("UPDATE 'my_table_name' SET `currentstatus` = 'myupdate1' WHERE ID = '1'"));    die($results);}添加到函数文件 wp_localize_script('myfunctionname', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));编辑 1 到位后,我还收到错误 - 注意:wp_localize_script 被错误地调用。在 wp_enqueue_scripts、admin_enqueue_scripts 或 login_enqueue_scripts 挂钩之前,不应注册或排队脚本和样式。该通知是由 wait list_update 句柄触发的。请参阅 WordPress 中的调试以获取更多信息。www.xyz.com/wp-includes/functions.php第 5225 行。我一定是误解了建议中的某些内容。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

问题应该出在 URL 上,我认为它必须是绝对的。


jQuery.ajax({

    //....

    url: 'http://yourwebsite.com/wp-content/themes/yummy/update-waitlist.php'

    // ...

WordPress 的方式


您必须先将 JS 文件script.js排入队列handle ,然后再进行本地化


本地化脚本以传递通用数据。我们将传递ajax_urlwithmy_ajax对象。


函数.php


wp_localize_script('your-script-handle', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));

然后在脚本文件中,您可以使用该my_ajax对象来获取 AJAX URL。定义一个function_1在请求此 AJAX 调用时将执行的操作。


脚本.js


jQuery.ajax({

    type: 'post',

    url: my_ajax.ajax_url,

    data: {

      action: 'function_1',

    }

    success: function(data){

        // callback function

    }

});

定义一个函数并将其附加到 Ajax 操作,该操作将查询数据库并返回结果。


函数.php


add_action('wp_ajax_function_1', 'function_to_execute_some_query'); // logged in user can make a call

add_action('wp_ajax_nopriv_function_1', 'function_to_execute_some_query'); // non logged in user can make a call


function function_to_execute_some_query() {

    global $wpdb;

    $results = $wpdb->query( $wpdb->prepare("UPDATE 'wp_wpdatatable_4' SET `currentstatus` = 

    'myupdate1' WHERE wdt_ID = '1'"));

    die($results);


}


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 30 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信