質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1724閲覧

JavaScript 「削除」でエラー???

a-_.

総合スコア133

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/08/26 08:55

編集2016/09/06 02:34

・ラジオボタン「投稿」がチェックされている状態の場合はチェックボックス非表示
・ラジオボタン「更新」「削除」がチェックされた場合のみチェックボックス表示
・チェックボックス未チェックのままsubmitボタンを押下した場合はエラー(javascript:alert)を表示し、投稿を中止
という条件をJavaScriptのみで処理したいんですが、削除を選択してアラート表示されるか試したら、Notice: Undefined index: chkid
Warning: implode(): Invalid arguments passed
と表示されました
エラーの箇所は以下の部分を指しています
$id = $_POST['chkid'];
$id_str = implode(",", $id);
何故エラーが表示されたのかが頭で処理できません

PHP

1 $link = mysqli_connect($host, $user, $pass, $dbname) or die("NG"); 2 3 mysqli_select_db($link, "XXX"); 4 5 if (isset($_POST['name'], $_POST['comment'], $_POST['bbs']) && $_POST['bbs'] == "post") { 6 $name = $_POST['name']; 7 $comment = $_POST['comment']; 8 mysqli_query($link, "INSERT INTO XXX (name, comment) VALUES ('$name', '$comment')"); 9 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "update") { 10 $name = $_POST['name']; 11 $comment = $_POST['comment']; 12 $id = array(); 13 $id = $_POST['chkid']; 14 $id_str = implode(",", $id); 15 mysqli_query($link, "UPDATE XXX SET name = '$name', comment = '$comment' WHERE id in($id_str)"); 16 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "delete") { 17 $id = array(); 18 $id = $_POST['chkid']; 19 $id_str = implode(",", $id); 20 mysqli_query($link, "DELETE FROM XXX WHERE id in($id_str)"); 21 } 22 23 $result = mysqli_query($link, "SELECT * FROM XXX ORDER BY time DESC"); 24?>

HTML

1<html> 2 <head> 3 <meta charset="utf-8"> 4 <script> 5 function condition() { 6 var de = document.getElementById("r3").checked; 7 var up = document.getElementById("r2").checked; 8 if (de == false) { 9 if (document.getElementById('name').value.length >= 10) { 10 window.alert("ERROR"); 11 return false; 12 } else if (document.getElementById('name').value.length == "") { 13 window.alert("ERROR"); 14 return false; 15 } else if (document.getElementById('comment').value.length >= 300) { 16 window.alert("ERROR"); 17 return false; 18 } else if (document.getElementById('comment').value.length == "") { 19 window.alert("ERROR"); 20 return false; 21 } else if (up == true) { 22 nochk(); 23 } 24 } else { 25 nochk(); 26 } 27 } 28 function change(obj) { 29 console.log(obj.id); 30 if (obj.id == "r1") { 31 document.getElementById("send").value = "投稿"; 32 chkchange(true); 33 } else if (obj.id == "r2") { 34 document.getElementById("send").value = "更新"; 35 chkchange(false); 36 } else if (obj.id == "r3") { 37 document.getElementById("send").value = "削除"; 38 chkchange(false); 39 } 40 } 41 function chkchange(bool) { 42 chk = document.getElementsByName('chkid[]'); 43 for(var box = 0; box < chk.length; box++) { 44 console.log(chk[box]); 45 console.log(box); 46 chk[box].disabled = bool; 47 } 48 if (box == 0) { 49 window.alert("ERROR"); 50 } 51 } 52 </script> 53 </head> 54 <body> 55 <form method="post" action="" onsubmit="return condition()"> 56 <table> 57 <tr> 58 <td> 59 名前:<input type="text" name="name" id="name"> 60 内容:<textarea name="comment" cols="30" rows="3" id="comment"></textarea> 61 <input type="radio" name="bbs" id="r1" value="post" onchange="change(this)">投稿 62 <input type="radio" name="bbs" id="r2" value="update" onchange="change(this)">更新 63 <input type="radio" name="bbs" id="r3" value="delete" onchange="change(this)">削除 64 <input type="submit" value="投稿" id="send"> 65 </td> 66 </tr> 67 </table> 68 69<?php 70 while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 71?> 72 73 <table> 74 <input type="checkbox" name="chkid[]" value="<?=$row['id'] ?>"> 75 <tr> 76 <td>名前: 77 <?php echo $row['name'] ?> 78 </td> 79 </tr> 80 <tr> 81 <td>内容: 82 <?php echo $row['comment'] ?> 83 </td> 84 </tr> 85 </table> 86 87<?php 88 } 89 mysqli_free_result($result); 90 91 mysqli_close($link); 92?> 93 94 </form> 95 </body> 96</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

<input type="checkbox" name="chkid[]" ・・・
のチェックボックスが一つもチェックされてないんじゃないですか?
なにもチェックしなければchkidというパラメータが飛ばないので
$_POST["chkid"]は参照エラーになります

投稿2016/08/26 09:13

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問