如何在不使用函数的情况下从PHP中获取AJAX数据

时间:2014-09-12 17:35:08

标签: javascript php ajax wordpress wpdb

注意:请不要再下选票,只是因为你无法回答问题/或者无法理解问题并不意味着你必须投票。我明确表示如果你也需要我,我可以提供更多信息/更具体。

编辑标题

我使用javascript来验证表单客户端,然后使用ajax将3个数组的数据传递到单独的PHP页面进行处理。在我开始之前,尝试使用其中一个数组执行基本查询。

ajax请求说它正在工作,当我进入网络选项卡,然后单击响应时,它会显示所有具有正确值/索引的数组。

但是在PHP方面没有任何事情发生。我不知道如何调试PHP,因为它在不同的页面上。我假设这与我的语法有关,因为我以前也有这个工作,但我在函数中使用了ajax。我对ajax很新,所以我不太确定我是否正确这样做。我在页面上尝试了有效的$wpdb查询,但没有发生任何事情。如何正确构建我的PHP页面以使用ajax?当ajax触发时,我可以用任何方式调试我的PHP吗?

如果您需要其他信息,请告诉我们。

AJAX CALL:

$.ajax({
type: "POST",
url: "?page_id=251",
data: { vData: videoData, tsData: tsValues, dData: tsDescriptions},
success: function(){
$("#errorMessage").text("ajax success.");
}});

?page_id = 251(PHP页面)

 <?php
 $videoData = $_POST['vData'];    // i have also tried $_GET['vData'];
 $vSRC = $videoData[0];$vTIT = $videoData[1];$vDES = $videoData[2];$vPDF = $videoData[3];$vDAT = $videoData[4];  
 $uID = get_current_user_id();

 global $wpdb;

 $wpdb->insert( $wpdb->prefix."uservideo", array(
               "user_id" => $uID,
               "video_src" => $vSRC,
               "video_title" => $vTIT,
               "video_description" => $vDES,
               "pdf_file" => $vPDF,
               "video_date" => $vDAT
            ));

 ?>

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。 我需要用ajax调用一个函数,不能只调用一个页面。我确定你可以只是打电话给页面,但没有人知道它是多么明显。

<强> AJAX

    <script type="text/javascript">
    function insert_data(vidData,timesData,descData){
      $.ajax({
          url: '?page_id=251', 
          type: 'POST',
          data: {action: 'insert_video', vData: vidData, tsData: timesData, dData: descData },
          dataType: 'json',
          success: function(response){
            alert('dhsdhjsdjhsjhdjhsd');
          }
      });
    }
</script>

<强> PHP

<?php
function insert_video($videoData,$tsValue,$tsDesc){
 $videoData = $_POST['vData'];
 $vSRC = $videoData[0];$vTIT = $videoData[1];$vDES = $videoData[2];$vPDF = $videoData[3];$vDAT = $videoData[4];
 $tsValue = $_POST['tsData'];
 $tsDesc = $_POST['dData'];
 $uID = get_current_user_id();

 global $wpdb;

 $wpdb->insert( $wpdb->prefix."uservideo", array(
               "user_id" => $uID,
               "video_src" => $vSRC,
               "video_title" => $vTIT,
               "video_description" => $vDES,
               "pdf_file" => $vPDF,
               "video_date" => $vDAT
            ));
}
 echo insert_video($_POST['vData'], $_POST['tsData'], $_POST['dData']);
?>