• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPへチェックボックスの値の渡し方)

PHPへチェックボックスの値の渡し方

AsarKingChangの回答

回答No.2

もう一つ、Response側、 if(this.readyState == 4 && this.status == 200){ var object = JSON.parse(this.responseText); JS側で、JSONデコードをしているのですが、 echo  "set part=".$_POST[$checkNum]."<BR>"; PHP側で、無駄な表示物を発生させてしまっており、 当然JSONパースエラーになります。 基本JSON入出力を目的としたAPI(PHPなど)では、 JSONの外ではなくJSONの「中」にこの手のデバッグは 入れた方がいいですよ。 $out=[]; $out["response"]=ここに、本来APIが返したい情報を入れる。 $out["debug"]=[]; //debugという配列を作成し、配列として初期化。 $out["debug"][]=デバッグ文字; // 自動的に後方結合させ文字を追加 $out["debug"][]=デバッグ文字; $out["debug"][]=デバッグ文字; 最後に、$outそのものをJSONでクライアントに送り出すように コーディングすると、本来ほしい情報+デバッグ情報が 混在できるので、その方がいいでしょう。

papashiroSooke
質問者

お礼

ご回答の続きをいただき、有難うございます。 残念ながら、ここで回答者様のおっしゃっている事は私には理解できません。JSONによるデータの受け渡しには何も問題はないので、ご了承ください。

関連するQ&A

  • チェックボックスの値を取り出したい

    こんにちは JavaScript初心者です。 過去ログを見ながらここまでやったのですが、何も表示されません。 ?マークの所で引っかかっていると思うのですがどなたかご教授願います。 やりたい事は、チェックボックスのチェックの入った所の値を取り出して表示したいのですが... 3つチェックされていてOKをクリックした時に、ABC と出てくるのが理想です。 <html> <SCRIPT LANGUAGE="JavaScript"> <!-- function chkform() { for(i=1; i<=3; i++) { chkdata(i) = document.form0.chk(i).Value    ? var aa = chkdata(i) document.write(aa) } } //--></SCRIPT> <FORM onSubmit="return chkform(this)" name = "form0"> <INPUT type="checkbox" name="chk" value="A" > <INPUT type="checkbox" name="chk" value="B" > <INPUT type="checkbox" name="chk" value="C" > <INPUT type="submit" value="OK" > </form> </html>

  • チェックボックスが複数ある場合の値取得について

    【javascript】チェックボックスが複数ある場合の値取得について こんにちは。 チェックボックスのグループが複数ある場合に、値取得のロジックをチェックボックスのグループ毎に記述せず、 まとめて1つのロジックで取得できる記述方法はありますでしょうか? 色々と検索しましたが、解決できず何かよい方法があれば教えて頂けないでしょうか。 よろしくお願い致します。 ■やりたいこと ・チェックボックスの値取得の記述を1つにまとめたい。 サンプルソースでは、チェックボックスのグループが3つで、チェックボックスの値取得のソースも3つ記述しています。 チェックボックスのグループを50個設置すると、50回値取得のソースを記述することになってしまうので、1つの記述にまとめたいです。 ■サンプルソース <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <script src="jquery.js"></script> <style type="text/css"> table {border: solid;} td{width:150px;} </style> <script type="text/javascript" language="JavaScript"><!-- function setVal(obj) { var formname = obj.form.name; var radioname = obj.getAttribute("Name"); document.forms[formname]["h"+radioname].value = $("input:radio[name='" + radioname + "']:checked").val(); } // --></script> <script type="text/javascript" language="JavaScript"><!-- function disp(obj){ var naiyo02=""; var naiyo03=""; var naiyo04=""; var flag = 0; //チェックボックス1の値 for(i=0; i<document.forms["test"].checkbox02.length; i++){ if(document.forms["test"].checkbox02[i].checked){ naiyo02 = naiyo02 + "■本日は月曜日:"+ document.forms["test"].hradio00.value + ' ' + document.forms["test"].checkbox02[i].value + '\n'; flag = flag+1; }} if(flag == 0){ naiyo02 = "■本日は月曜日:"+ document.forms["test"].hradio00.value + ' ' + "未選択"+ '\n'; } //チェックボックス2の値 for(i=0; i<document.forms["test"].checkbox03.length; i++){ if(document.forms["test"].checkbox03[i].checked){ naiyo03 = naiyo03 + "■本日は火曜日:"+ document.forms["test"].hradio00.value + ' ' + document.forms["test"].checkbox03[i].value + '\n'; flag = flag+1; }} if(flag == 0){ naiyo03 = "■本日は火曜日:"+ document.forms["test"].hradio00.value + ' ' + "未選択"+ '\n'; } //チェックボックス3の値 for(i=0; i<document.forms["test"].checkbox04.length; i++){ if(document.forms["test"].checkbox04[i].checked){ naiyo04 = naiyo04 + "■本日は水曜日:"+ document.forms["test"].hradio00.value + ' ' + document.forms["test"].checkbox04[i].value + '\n'; flag = flag+1; }} if(flag == 0){ naiyo04 = "■本日は水曜日:"+ document.forms["test"].hradio00.value + ' ' + "未選択"+ '\n'; } str = naiyo02 +'\n'+ naiyo03 +'\n'+ naiyo04 +'\n'; alert(str); } // --></script> </head> <body> <FORM name="test"> <table> <tr> <td class="c"> ■天気 </td> <td class="n" > <label for="radiocheck04"><input type="radio" id="radiocheck04" name="radio00" value="晴れ" onClick="setVal(this);">晴れ</label> <label for="radiocheck05"><input type="radio" id="radiocheck05" name="radio00" value="曇り" onClick="setVal(this);">曇り</label> <input type="hidden" name="hradio00" value="未入力"><br> </td> </tr> </table> <table> <tr> <td class="c" > ■月曜日<br> (複数選択可) </td> <td class="n" > <input type="checkbox" name="checkbox02" value="さくら">さくら<br> <input type="checkbox" name="checkbox02" value="まっちゃ">まっちゃ<br> <input type="checkbox" name="checkbox02" value="不明"> 不明<br> </td> </tr> </table> <table> <tr> <td class="c" > ■火曜日<br> (複数選択可) </td> <td class="n" > <input type="checkbox" name="checkbox03" value="バニラ">バニラ<br> <input type="checkbox" name="checkbox03" value="不明"> 不明<br> </td> </tr> </table> <table> <tr> <td class="c" > ■火曜日<br> (複数選択可) </td> <td class="n" > <input type="checkbox" name="checkbox04" value="いちご">いちご<br> <input type="checkbox" name="checkbox04" value="ミント">ミント<br> <input type="checkbox" name="checkbox04" value="バニラ">バニラ<br> <input type="checkbox" name="checkbox04" value="不明"> 不明<br> </td> </tr> </table> <input type="button" value="確認" onclick="javascript:disp(this.form)"> </Form> <body> </html>

  • チェックボックスの中味を送信できません

    昨日、Ajax通信で受け取ったデータをチェックボックスに反映する方法を教わった者です。 今度は送信で悩んでいます。 表のデータをPOSTで送るんですが、テキストのところ(「td」に書かれたものや input type="text" の部分) は問題なく渡せました。 でもまたまたチェックボックスでつまずいています。 ★☆★☆★☆★☆の部分ですが、プログラムは通るのですが、チェックボックスの内容(チェックか否か)を 拾ってくれません。 また、rows[i].getElementByTagName("sendF[]") などとやってみたんですが、エラー(not a function)が出てしまいます。 どなたかご指導下さい。 よろしくお願いします。 $.ajax({ type: "POST", url: "../SendList.php", data: {"condition":condition}, // Webサーバに送信するデータ dataType: 'text', // Webサーバか受信するデータの形式 success: function(request){ // ajax通信が成功したときの処理 var json = JSON.parse(request); var res = ''; for (var i = 0; i < json.length; i++){ res += '<tr>' + '<td style="text-align: center;">' + json[i].personId + '</td>' + '<td style="text-align: center;">' + json[i].personName + '</td>' + '<td style="text-align: center;">'; // 値を checkbox のチェックに差し込む if(json[i].sendF == 1){ res += '<input type="checkbox" id="sendF[' + i + ']" name="sendF[]" checked />'; } else { res += '<input type="checkbox" id="sendF[' + i + ']" name="sendF[]" />'; } res += '</td >' + '<td style="text-align: left;">' + '<input type="text" id="memo" name="memo" value="' + json[i].memo + '" />' + '</td >' + '</tr>'; } var obj = document.getElementById("datatable"); obj.innerHTML ='<table id="tbl_correspondUpdate" class="customerlist"><tr><th>担当者ID</th><th>担当者名</th><th>送信F</th><th>メモ</th></tr>' + res + '</table>' + '<br />' +'<p class="condition_submit">' + '<input id="btnUpdate" type="button" onclick="doActionUpdate();" value="更新" />' + '</p>'; }, error: function(msg){ // ajax通信が失敗したときの処理 alert( "Data Saved: " + msg ); } }); } // 「更新」ボタンクリック function doActionUpdate(){ var tbl = document.getElementById("tbl_correspondUpdate"); var cols = tbl.rows[0].cells.length;// 列数 //var rows = tbl.rows.length; // 行数 var rows = tbl.rows; // 行に対するループ for (var i=1; i<rows.length; i++) { var sendF; if(rows[i].cells[6].checked){ ★☆★☆★☆★☆// → 通るものの拾わない //var elm = rows[i].getElementByTagName("sendF[]"); // → not a function //if(elm.checked){ sendF = 1; }else{ sendF = 0; } // dataセット var data = "personId=" + rows[i].cells[0].innerHTML + "&sendF=" + sendF + "&memo=" + rows[i].cells[3].firstChild.value updateRecord(data); } } // 更新処理 function updateRecord(data){ // 更新Ajax処理 // 更新したIDを返す $.ajax({ type: "POST",

  • テーブル上のチェックボックスにチェックがされない

    データベースからメール送信履歴を検索し、結果をリスト表示しようとしています。 Ajax通信をして結果をJsonで受け取っています。 送ったか否かは「sendF」に書かれており、「0」なら未送信、「1」なら送信済みです。 「sendF」が「1」ならチェックボックスにチェックを入れようと思って 以下のコードを書きました。 でも、テーブル上のチェックボックスにはチェックが入りません。 console.logで数値が「1」を確認していますが、表示がされません。 どこが悪いか教えて頂けるとうれしいです。 よろしくお願いします。 $.ajax({ type: "POST", url: "../SendList.php", data: {"condition":condition}, // Webサーバに送信するデータ dataType: 'text', // Webサーバか受信するデータの形式 success: function(request){ // ajax通信が成功したときの処理 var json = JSON.parse(request); var res = ''; for (var i = 0; i < json.length; i++){ res += '<tr>' + '<td style="text-align: center;">' + json[i].personId + '</td>' + '<td style="text-align: center;">' + json[i].personName + '</td>' + '<td style="text-align: center;">' + '<input type="checkbox" id="sendF[' + i + ']" name="sendF" />' + '</td >' + '<td style="text-align: left;>' + '<input type="text" id="memo" name="memo" value="' + json[i].memo + '" />' + '</td >' + '</tr>'; if(json[i].sendF == 1){ $('#sendF[' + i + ']').prop('checked', true); console.log("1でした"); } } var obj = document.getElementById("datatable"); obj.innerHTML ='<tr><th>担当者ID</th><th>担当者名</th><th>送信F</th><th>メモ</th></tr>' + res; }, error: function(msg){ // ajax通信が失敗したときの処理 alert( "Data Saved: " + msg ); } });

  • 複数のチェックボックスをチェックしたい

    質問させてください。 複数のチェックボックスを項目別に全てチェックするようなjqueryの書き方をご教授いただきたいです。 <table> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />a</li> <li><input type="checkbox" name="" value="" />b</li> <li><input type="checkbox" name="" value="" />c</li> <li><input type="checkbox" name="" value="" />d</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />e</li> <li><input type="checkbox" name="" value="" />f</li> <li><input type="checkbox" name="" value="" />g</li> <li><input type="checkbox" name="" value="" />h</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />i</li> <li><input type="checkbox" name="" value="" />j</li> <li><input type="checkbox" name="" value="" />k</li> <li><input type="checkbox" name="" value="" />l</li> </td> </tr> </table> 上記のようにそれぞれの項目に「まとめてチェック」のチェックボックスがあり、 そこに該当するチェック項目は全てチェックorチェックを外す っという挙動の実装を考えています。 jqueryでやりたいのですが、javascript、jqueryがかなり苦手でいまいちいきません。 ググって $(function(){ $('#all').click(function(){ if(this.checked){ $('#check input').attr('checked','checked'); }else{ $('#check input').removeAttr('checked'); } }); }); このソースを見つけたのですが、これだと一つの項目でしか実装できず 項目分このjqueryを書くのも余り良い書き方だと思えません。 どなたか、ご教授お願いいたします。

  • テーブルの行削除について

    以前、テーブルの行追加について教えてもらい出来ましたが 逆に、追加された行を削除する方法を教えてください。 <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> <TITLE>行追加・削除</TITLE> </HEAD> <BODY> <TABLE BORDER="1" id="Table1"> <TR> <TH>タイトルA</TH> <TH>タイトルB</TH> </TR> <TR> <TD><INPUT TYPE="text" SIZE="18" MAXLENGTH="18" NAME="A" VALUE=""></TD> <TD><INPUT TYPE="text" SIZE="18" MAXLENGTH="18" NAME="B" VALUE=""></TD> </TR> </TABLE> <INPUT TYPE="button" VALUE="行追加" onclick="addRow()"> <INPUT TYPE="button" VALUE="行削除"> <script language="JavaScript"> function addRow() { var tbl = document.getElementById("Table1").firstChild; if (!tbl.tagName) { tbl = document.getElementById("Table1"); } var tr = document.createElement("tr"); var td1 = document.createElement("td"); var tx1 = document.createElement("input"); tx1.setAttribute("type","text"); tx1.setAttribute("size","18"); tx1.setAttribute("maxlength","18"); tx1.setAttribute("name","Cn"); tx1.setAttribute("value",""); td1.appendChild(tx1); var td2 = document.createElement("td"); var tx2 = document.createElement("input"); tx2.setAttribute("type","text"); tx2.setAttribute("size","18"); tx2.setAttribute("maxlength","18"); tx2.setAttribute("name","Cn"); tx2.setAttribute("value",""); td2.appendChild(tx2); tr.appendChild(td1); tr.appendChild(td2); tbl.appendChild(tr); } </script> </BODY> </HTML>

  • チェックボックスの未入力チェック

    ざっとですけれども <form action="**" name="myform" onsubmit="return Check()" method=post> <input type="checkbox" name="Erasedata" id="Erasedata" value="1" > <input type="checkbox" name="Erasedata" id="Erasedata" value="2" > ・・・ <input type="checkbox" name="Erasedata" id="Erasedata" value="5" > <input type="submit" value="選択されたものを削除する"> このようなチェックボックスがあったとして function Check() { for (i=0;i<document.myform.length;i++)  {   if(document.myform.Erasedata[i].checked==true) {return true;}  } alert("どこかにチェックを入れて下さい "); return false; } といった感じで未入力チェックをしています。 チェックボックスが複数の場合はうまく動くのですが、チェックボックスがひとつだとうまくいきません。スクリプトで何か問題があるようでしたらご指摘お願いできませんでしょうか。よろしくお願いいたします。

  • チェックボックスのチェックについて

    submit時に一つでもチェックがなければアラートを表示 チェックがあれば進む・・・としたいです。 <form action=next.html name=form1> <input type=checkbox name=checkbox1 value=1> <input type=checkbox name=checkbox2 value=2> <input type=checkbox name=checkbox3 value=3> <input type=checkbox name=checkbox4 value=4> <input type=checkbox name=checkbox5 value=5> ~以下50まで続きます <input type=submit value=submit> </form> function countChecked(form1) { var total = 0; var max = 50; for (var index = 0; index < form1.checkbox.length; index++) { total += form1.checkbox[index].checked ? 1 : 0; } if(countChecked(document.form1)) > 0) { return true; } else { alert("no"); return false; } return(total); } 過去に似たような質問を参考に作ってみましたがダメでした。 チェックボックスの名前の付け方が悪いのでしょうか。

  • javascriptでチェックボックスの選択状況をチェックする方法につ

    javascriptでチェックボックスの選択状況をチェックする方法について質問です。 チェックボックスを <input type="checkbox" name="chk[]" value="1"> <input type="checkbox" name="chk[]" value="2"> のようにした場合、チェックボックスが1か所以上選択されているかどうかは、 var count = 0; for (var i=0;i<document.myform.elements['chk[]'].length;i++){ if(document.myform.elements['chk[]'][i].checked){ count++; } } if(count==0){ window.alert("チェックしてください!"); } のようにすればチェック可能ですが、inputタグで <input type="checkbox" name="chk1[]" value="1"> <input type="checkbox" name="chk1[]" value="2"> <input type="checkbox" name="chk2[]" value="A"> <input type="checkbox" name="chk2[]" value="B"> のように「name」の配列名が変化する場合はどのようにすればチェック可能でしょうか?

  • 動的なcheckboxのcheckedについて

    動的にcgiから名簿tableを作り先頭にcheckboxを配置しています。 (□、コード、氏名) そのコードNo.取得し内容によってループ内でcheckboxをif文でオンオフしたいのですがコードNo.(rec[0])の取得方法がわかりません。できるはずとは思うのですが私の力不足で・・・。よろしくお願いします。 var recs = xhrObj.responseText.split("<r>"); var status2 = "<table id='meibo' ><tbody><tr>" +"<th width='20'><th width='40'>No.</th><th width='120'>氏名</th>" +"</tr>"; for(var i = 1; i < recs.length - 1; i++){ rec = recs[i].split("<i>"); status2 += "<tr><td><input type='checkbox' name='checkbox' id='"+i+"' /></td>"; status2 += "<td id='"+i+"' />"+rec[0]+"</td><td id='"+i+"' />"+rec[1]+"</td>"; status2 += "</tr>"; } status2 += "</tbody></table>"; document.getElementById("status2").innerHTML = status2; var observer = document.getElementById("meibo"); setListener(observer, "click", check);