その投稿は、php フォームから javascript に変数を渡すのに役立ちました。
今、値でDBを更新する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」には渡されません。(また、値を db に挿入しようとしましたが、最後にあるはずです - うまくいきませんでした)。
私が試した文字列を渡すには:
success: function(data) {
$("#log").html("Sucess"+ data);
}
また
complete: function(data) {
$("#log").html("Sucess"+ data);
}
また
request.done(function( msg ) {
$( "#log" ).html("Sucess! Msg =" + msg );
});
Chrome デバッガーのスクリーンショット:
問題は、この単純な例で変数が転送されたかどうかを確認するために、addCOMmentsToDBtest.php からデータを戻すにはどうすればよいかということです。
最終的に達成しようとしているのは、データを JqueryTest.php から addCOmmentsToDBtest.php に渡し、DB を更新することです。
助けてくれてありがとう。
これは、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>