アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP初心者ですが、古いプログラムのコード解析をしています。
その中でいまいち理解できないコードがありましたので、今回質問させて頂きます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー①
function update_set(){
var chkFDel;
if(document.getElementById("chkFDel")){
chkFDel = document.getElementById("chkFDel").checked;
if(chkFDel){
document.getElementById("chkFDel").value = "1";
}else{
document.getElementById("chkFDel").value = "0";
}
}else {
document.getElementById("chkFDel").value = "2";
}
document.getElementById("f01").submit();
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー②
if(trim($m_filePath)==""){
  print("<INPUT type="file" id=\"filePath" name="filePath">");
}else{
  print("<INPUT READONLY type="text" id="fileDel" name="fileDel" value="".$m_filePath">");
  print("<INPUT type="checkbox" id="chkFDel" name="chkFDel" value=\"削除\">削除");
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
↑一部抜粋したものですが、
初心者の私から見るとたぶんチェックボックスが表示されてない場合に
("chkFDel").value = "2"を行うのではないかと思いますが、どうなのでしょうか?
詳しい方、ご教示の程よろしくお願い致します。

質問者からの補足コメント

  • うーん・・・

    ー①のコード改修版がありましたので記載します。
    var chkFDel;
    if(!document.getElementById("chkFDel")){
     document.getElementById("chkFDel").value = "2";
    }else if(document.getElementById("chkFDel").checked){
     document.getElementById("chkFDel").value = "1";
    }else{
     document.getElementById("chkFDel").value = "0";
    }
    同一の処理でしょうか?

      補足日時:2016/07/28 11:25
  • うーん・・・

    回答ありがとうございます。コード①はjavascriptでございます。

    chkFDelが存在しない場合に処理を分岐か別の処理を行うとした場合、
    chkFDelではない変数を作り別のif文で判別をおこなうのでしょうか?

    またchkFDelに入る値は別phpファイル↓で利用されています。
    if($_POST["chkFDel"]=="0"){
    }else if($_POST["chkFDel"]=="1"){
    $sql .= "filePath='',";
    }else if($_POST["chkFDel"]=="2"){
    if($_FILES["filePath"]["name"] <>""){
    $sql .= "filePath='" . $pathURL.$_FILES["filePath"]["name"] . "',";
    }}

    よろしくお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/07/28 13:40
  • うーん・・・

    いくつも回答いただき、本当にありがとうございます。

    記載頂いたコードですが、確認サイトで添付画像のように動きました。
    しかし、チェックボタンと参照ボタンが同時に表示されてしまいます...

    コード的にはおそらくページ内にチェック(checkbox)又は参照(file)のどちらかが表示されて、
    if文で表示されているものに対応する値がchkPDelに入る。ということではないのでしょうか?

    間違って訳の分からない事かもしれませんが、回答お待ちしています。

    「PHPの解析をしています。初心者です。」の補足画像3
    No.2の回答に寄せられた補足コメントです。 補足日時:2016/07/28 15:32

A 回答 (2件)

こんな風になにか適当なidをふった要素にvalueを代入してやるとよいです。



<script>
function check(id){
var n=document.getElementById(id);
var c4=document.getElementById("c4");
if(!n){
c4.value=id+"は存在しない";
}else if(n.type!=="checkbox"){
c4.value=id+"チェックボックスじゃない";
}else if(n.checked){
c4.value=id+"チェックされてる";
}else{
c4.value=id+"チェックされてない";
}
}
</script>
<form>
c1:<input type="checkbox" id="c1"> <input type="button" value="c1をチェック" onclick="check('c1')"><br>
c2:<input type="text" id="c2"> <input type="button" value="c2をチェック" onclick="check('c2')"><br>
c3:存在しない <input type="button" value="c3をチェック" onclick="check('c3')"><br>
c4:<input type="text" name="c4" id="c4";><br>
</form>
この回答への補足あり
    • good
    • 0

私が誤解してなければ(1)はjavascriptですよね?


if(!document.getElementById("chkFDel")){
 document.getElementById("chkFDel").value = "2";

ここの箇所はNGですdocument.getElementById("chkFDel")というオブジェクトが
なければ・・・という条件にたいして
document.getElementById("chkFDel")という存在しないオブジェクトに
valueに2を代入するということで矛盾しています

へんな代入をするのではなく、別の処理をさせてください
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!