php、mysqlでの同期システムを作りたいですがうまく動かないです
受付中
回答 3
投稿
- 評価
- クリップ 0
- VIEW 2,275
こちらは管理画面で、本番同期ボタンを押すと本番ディレクトリーのファイルに同期されるようになっています。
そこで、本番同期ボタンを押すと<Target=”_blank”>などは設定してないのに新しいウィンドウに飛んでしまいます。エラーはありません。
新しいウィンドウに飛ばないように本番同期されたときのメッセージを管理画面上に出したいです。どうすればできるのでしょうか?ご教授お願いいたします。
ソースコードです
<form action="" method='post'>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th><input id="selectAllBoxes" type="checkbox"></th>
<th>番号</th>
<th>タイトル</th>
<th>本文</th>
<th>本番同期</th>
</tr>
</thead>
<tbody>
<?php
$query = "SELECT * FROM test ORDER BY test_id DESC";
$sql = mysqli_query($con, $query);
while($row = mysqli_fetch_assoc($sql)){
$test_id =$row['test_id'];
$test_title = mb_substr($row['test_title'],0,15);
$test_contents = mb_substr($row['test_contents'],0,15);
echo "<tr>";
?>
<?php
echo "<td>$test_id</td>";
echo "<td>$test_title</td>";
echo "<td>$test_contents</td>";
echo "<td><button class=\"btn\" onclick=\"window.open('includes/sync.php?test_id={$test_id}');\">本番同期</button></td>";
echo "</tr>";
}
?>
</tbody>
</table>
</form>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+2
window.open 使っているからでしょう。
window.location.href を使えばいいんじゃないですか?
echo "<td><a class=\"btn\" href='includes/sync.php?test_id={$test_id}'>本番同期</a></td>";
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
ajaxで非同期通信(ページ遷移を伴わない、リクエストの送信)できます。
下記のような感じになるかと。
jQuery.ajax(
"includes/sync.php",{
type : 'GET',
dataType: 'text',
data: { //nameとvalueをセットでオブジェクトの中に定義する
"test_id" : {$test_id},
},
success: function(get){
console.log(get);
}
}
);
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
<form action="hoge.php(自分自身)" method='post'>
のように自分自身宛てにして、ボタンをsubmit形式に。
<td>
<input type="hidden" name="test_id" value="{$test_id}">
<input type="submit" value="本番同期"></td>
という一度ジャンプする形式はダメですか?
ダメならkoufukurairaiさんの言うようにajax通信等で行うか、
xhttp通信(こちらも割と複雑)しか無いと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/05/12 13:34
ご指摘通り下記のように試してみましたが何も実行できなかったです
```
echo "<td><button class=\"btn\" window.location.href ='includes/sync.php?test_id={$test_id}';>本番同期</button></td>";
```
2016/05/12 13:36
button 要素に window.location.href なんて属性ありません
2016/05/12 14:53
宜しくお願いします。
echo "<td><button><script type='text/javascript'> window.location.href='includes/sync.php?test_id={$test_id}'</script></button>";
2016/05/12 15:52 編集
echo "<td><input type='button' value='本番同期' onClick=\"location.href='includes/hyoshi_sh.php?hyoshi_id={$hyoshi_id}'\"></td>";
2016/05/13 11:11
2016/05/16 14:07
2016/05/23 15:13
echo "<td><a rel='$test_id' href='javascript: void(0)' id='send'>同期</a></td>";
<script type="text/javascript">
$(function(){
$('#send').click(
function(){
$.ajax({
type: 'POST',
url: 'includes/sync.php',
data: {
'test_id': '{$test_id}'
},
success: function(data){
alert(data);
}
});
}
);
});
</script>
2016/05/23 18:33
Uncaught SyntaxError: Unexpected token .