0

那篇文章帮助我将变量从 php 表单传递到 javascript。

现在我想将它们发送到一个 php 文件,该文件应该使用这些值更新数据库。为简单起见,我创建了这个文件,它应该只返回值来检查它是否有效:addCOMmentsToDBtest.php:

<?php
$video_id = $_POST['VideoId'];
$starttime = $_POST['starttime'];           
 echo "Test! \n StartTime = " .$starttime. " videoId = " .$video_id; ?>

调用 addCOMmentsToDBtest.php 的整个 jquery $.ajax 函数位于下面的文件 (JqueryTest.php) 中。我厌倦了在 url 中传递数据:

 url: "addCommentsToDBtest.php?starttime="+ starttime +"endtime="+ endtime +"&text="+text+"&videoid="+videoid,  

或像这样传递数据

$.ajax({
  url: "addCommentsToDBtest.php",
  type: "POST",
  data: {
    'videoId': '<?php echo $video_id ?>',
    'starttime': starttime, 
    'endtime': endtime,
    'text': text, 
    'cat': cat            
      }

两者都没有工作。问题还在于,在这个简单的示例中,来自 addCOMmentsToDBtest.php 的字符串

 echo "Test! \n StartTime = " .$starttime. " videoId = " .$video_id;

不传递给 div 标签“log”。(我也尝试在数据库中插入值,就像它应该在最后一样 - 没有用)。

要传递我尝试过的字符串:

   success: function(data) {
        $("#log").html("Sucess"+ data);
    }

或者

  complete: function(data) {
            $("#log").html("Sucess"+ data);
        }

或者

 request.done(function( msg ) {
   $( "#log" ).html("Sucess! Msg =" + msg );
});

Chrome 调试器截图:

在此处输入图像描述

问题是:如何将 addCOMmmentsToDBtest.php 中的数据传回,以检查在这个简单示例中是否传输了变量?

我最终试图实现的是:将数据从 JqueryTest.php 传递到 addCOMmentsToDBtest.php 并更新我的数据库。

提前感谢您的帮助。

这里包含整个 javascript 和 php 表单的文件。

jQueryTest.php:

<?php
 $video_id = '153fb143';
?>
<!DOCTYPE html>
<html>

    <head>
        <title>JQUERY</title>

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>

function addCommentsToDB () {
    var videoid = document.getElementById('videoid').value;
    var starttime = document.getElementById('starttime').value;
    var endtime = document.getElementById('endtime').value;
    var text = document.getElementById('text').value;
    var cat = document.getElementById('cat').value;

    alert ("starttime ="+starttime+"; Endtime = "+endtime+"; text = "+text);

    $.ajax({
      url: "addCommentsToDBtest.php?starttime="+ starttime +"endtime="+ endtime +"&text="+text+"&videoid="+videoid,     
//  check ''
//  url: "addCommentsToDBtest.php?starttime="+ starttime +"endtime="+ endtime +"&text="+text+"videoId='"+videoId+"'",

// with data use that:
//  url: "addCommentsToDBtest.php",
      type: "POST",
/*  Does not Work  
    data: {
        'starttime': starttime, 
        'endtime': endtime,
        'text': text, 
        'cat': cat },     */

       success: function(data) {
            $("#log").html("Sucess"+ data);
        }
    });

    };

</script>

</head>
<body> 

<div id="log"> <p>log</p></div>
<div id="msg"></div>


<table>
<tr>
<td><div id="div1">div1</div></td>
<td><div id="div2">div2</div></td>
</tr>
<tr>
<td><div id="div3">div3</div></td>
<td><div id="div4">
<!--ADD Table-->

<form method="post" onsubmit="addCommentsToDB()" action="<?php $_SERVER['PHP_SELF']?>" >

        <table width="150px" border="1" cellpadding="0">
          <tr>
            <td width="25px"><p>start</p></td>
            <td width="25px"><p>end</p></td>
            <td width="75px"><p>Text</p></td>
            <td width="10px"><p>cat</p></td>
            <td width="5px"><p>+</p></td>
          </tr>
         <tr>
            <td><input style="width: 75px" type="time" name="starttime" id="starttime"></td>
            <td><input style="width: 75px" type="time" name="endtime" id="endtime"></td>
            <td><input style="width: 75px" type="text" name="text" id="text"><input type="hidden" id="VideoId" name="VideoId" value="<?php echo $video_id; ?>"></td>
            <td>
              <select width="15" name="cat" id="cat">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
              </select></td>
            <td><input type="hidden" name="videoid" id="videoid" value="<?php echo $video_id ?>"><input name="ADD"  type="submit" value="add">  </td>
            </tr>

        </table>

        </form>

</div></td>
</tr>
</table>
    </body>
</html>
4

2 回答 2

1

首先设置addCommentsToDB(); return false;为您的表单提交。没有它,您的表单将继续提交。其次,如果您使用 ajax POST,请不要使用带有 GET 参数的 url。data使用属性发送您的数据。

于 2013-10-18T12:57:55.047 回答
0

您需要将一个添加&到第二个变量

 url: "addCommentsToDBtest.php?starttime="+ starttime +"endtime="+ endtime +"&text="+text+"&videoid="+videoid,  

应该

 url: "addCommentsToDBtest.php?starttime="+ starttime +"&endtime="+ endtime +"&text="+text+"&videoid="+videoid,     
于 2014-06-23T13:54:27.147 回答