2017-01-29 6 views
0

これは私の最初の投稿者です。投稿エラーが表示された場合は、ご容赦ください。 htmlページにチェックボックスを作成しようとしていますが、.phpページからデータを取得したいとします。私のコードのこの時点では、ボックスがチェックされているかどうかは関係ありません、それは同じ答えを示しています(それはあります) - どんな提案ですか?ajax&phpのチェックボックスの決定

HTMLコード

<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlHttp; 
try 
    { 
    // Firefox, Opera 8.0+, Safari 
    xmlHttp=new XMLHttpRequest(); 
    } 
catch (e) 
    { 
    // Internet Explorer 
    try 
    { 
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e) 
    { 
    try 
     { 
     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    catch (e) 
     { 
     alert("Your browser does not support AJAX!"); 
     return false; 
     } 
    } 
    } 
    xmlHttp.onreadystatechange=function() 
    { 
    if(xmlHttp.readyState==4) 
     { 
     //alert(xmlHttp.responseText); 
     document.getElementById("DisplayBox").innerHTML=xmlHttp.responseText; 
     } 
    } 
    // start the query string 
    var QueryString = "IceCream_Coating.php?"; 
    QueryString = QueryString + "checked=" + document.getElementById("checked").value; 
    //alert(QueryString); 
    xmlHttp.open("GET", QueryString, true); 
    xmlHttp.send(null); 
    } 

</script></head> 

<body> 
<p>Is the box Checked</p> 
<form id="myform" name="myform" method="POST"> 
<p><input type="checkbox" name="checked" id="checked" value="yesORno"></p> 
    <input type="button" name="button" id="button" value="Decision" onclick="ajaxFunction();"/> 
    </p> 
</form> 
    <p> 
    <div id="DisplayBox"> 
    </div> 
    </p> 
</body> 

PHPコード

<?php 

$value = $_GET['checked']; 

if (isset($value)) { 
    echo "Yes the box is checked."; 
} else { 
    echo "No, the box is not checked."; 
} 

?> 
+0

がに構文if'あなたのphpを'変更してみてください])){'etc .... –

+0

私は同じ結果を得ます。 – Whistler

+0

'document.getElementById(" checked ")。value'は、チェックボックスの値を与えます。チェックされているかどうかはチェックされません。その要素の値は変わりません。 –

答えて

1

あなたは、チェックボックスがチェックされているかどうかを確認する必要があります。現在、要素に設定されている値がフェッチされているかどうかは関係ありません。

これを試してみてください:

var QueryString = "IceCream_Coating.php?"; 

if (document.getElementById("checked").checked) { 
    // Only add the value if it is checked 
    QueryString += "checked=" + document.getElementById("checked").value; 
} 

我々はまた、PHPのコードを変更する必要があります(ISSET($ _ GETは、[ '確認' の場合、 `:

<?php 
// We need to check if the parameter is set before trying to use it 
$value = isset($_GET['checked']) ? $_GET['checked'] : null; 

if ($value) { 
    echo "Yes the box is checked."; 
} else { 
    echo "No, the box is not checked."; 
} 

?> 
+0

Magnusが '{'checked':false}'でajax呼び出しを行ったとしたらどうなりますか? :) –

+0

私はちょうどコードを更新しました。そうすれば、「確認されていない」と言うでしょう。そのような場合にチェックされていると言いたい場合は、if文を 'if(is_null($ value))'に変更してください。つまり、値がnullとして検証されない限り、チェックされていると言えます。 –

関連する問題