Wordpress ajax->php 请求
Posted
技术标签:
【中文标题】Wordpress ajax->php 请求【英文标题】:Wordpress ajax->php request 【发布时间】:2016-08-05 04:13:45 【问题描述】:抱歉,如果有这样的主题,但我没有找到解决我的问题的方法。所以我们走吧... =)(我开始学习php了)。
这是事件日历,它将是 WP 的小部件。它需要工作 onclick 事件。所有代码都写在一个文件中(这是插件)。在小部件(在右侧边栏)中,我编写了 phpcode(用于测试),我在其中调用了这个函数。 http://herytire.esy.es/calendar 您可以推送“2”或“5”日期,这些日期在 mysql 中有数据。 一切正常,但我从来没有在 wordpress 中使用 php,并且这段代码有问题。
问题是:
当我在简单的 html 页面中使用此代码时,您可以在上面的链接中看到它,一切正常,我点击当天得到结果,但在 wp 中,alert(for error)
,返回 undefined
。两天我试图解决这个问题,但没有。我希望有人可以帮助我..!
**admin-ajax.php 是为 wp 的视图完成的!
<script type="text/javascript"> // ajaxurl in header.php
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>
/*
Plugin Name: Release Dates
Description: Small calendar for serials release dates.
Author: J_J
Version: 1.0
*/
function draw_calendar($month, $year) // creating calendar
$month = date('m');
$year = date('y');
$calendar = '<table class="calendar">';
$headings = array('S', 'M', 'T', 'W', 'T', 'F', 'S');
$calendar .= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">', $headings).'</td></tr>';
$running_day = date('w', mktime(0, 0, 0, $month, 1, $year));
$days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
$days_in_this_week = 1;
$day_counter = 0;
$dates_array = array();
$calendar .= '<tr class="calendar-row">';
for ($x = 0; $x < $running_day; ++$x)
$calendar .= '<td class="calendar-day-np"> </td>';
++$days_in_this_week;
for ($list_day = 1; $list_day <= $days_in_month; ++$list_day)
$calendar .= '<td class="calendar-day"><div class="day-number"><a style="cursor:pointer;" onClick="relDaySerial('.$list_day.');">'.$list_day.'</a></div></td>';
if ($running_day == 6)
$calendar .= '</tr>';
if (($day_counter + 1) != $days_in_month)
$calendar .= '<tr class="calendar-row">';
$running_day = -1;
$days_in_this_week = 0;
++$days_in_this_week;
++$running_day;
++$day_counter;
if ($days_in_this_week < 8)
for ($x = 1; $x <= (8 - $days_in_this_week); ++$x)
$calendar .= '<td class="calendar-day-np"> </td>';
$calendar .= '</tr>'.'</table>';
return $calendar;
function get_serials($day) // here i catch relDaySerial:id
if ($_POST['relDaySerial'] === null)
$day = date('d');
else
$day = $_POST['relDaySerial'];
global $wpdb;
$result = $wpdb->get_results("SELECT * FROM tvt_calendar WHERE day=$day");
foreach ($result as $value)
echo "
<table id='cal-data'>
<tr>
<td class='calendar-day-head'>TV Show</td>
<td class='calendar-day-head'>S</td>
<td class='calendar-day-head'>E</td>
</tr>
<tr class='cal-content'>
<td><a href='#'>".$value->title.'</a></td>
<td>'.$value->season.'</td>
<td>'.$value->series.'</td>
</tr>
</table>
';
function my_action_javascript()
?>
<script type="text/javascript" >
function relDaySerial(id)
jQuery.ajax(
type:'POST',
url:ajaxurl,
data:relDaySerial:id,
success:function(data)
if(relDaySerial.type == "success")
jQuery('#cal-bottom').html(data)
else
alert()
);
</script>
<?php
add_action('wp_footer', 'my_action_javascript');
add_action('wp_ajax_my_action_javascript', 'my_action_javascript');
add_action('wp_ajax_nopriv_my_action_javascript', 'my_action_javascript');?>
【问题讨论】:
【参考方案1】:因为您的alert()
需要一个参数。
试试这个:
alert('An error has occurred.');
【讨论】:
我需要返回 relDaySerial 数据(天数),我不需要错误消息“发生错误”))) 好兄弟。既然有人编辑了你的问题,我现在明白你的意思了。你说它还没有完成,但我要限制和测试你的代码,你的代码似乎只是一个整体的一部分,比如缺少<?php
并且 ajaxurl
没有定义?因为那是数据将被发送到 id 的地方。另外,add_action()
它建在哪里?更好地对其进行更多工作,或者请在代码中使用 cmets 进行更结构化的解释。没有冒犯,但这是人们避免在一堆代码没有注释时干扰这里的最主要原因。以上是关于Wordpress ajax->php 请求的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 ajax(Wordpress 插件)将 FormData 中的 Blob 发布到 php 时出现 400(错误请求)
Wordpress jQuery ajax GET 请求到 php 函数,该函数在每个 php 任务完成时逐步发回多个响应