PHP - форма флажка отправки с ajax - PullRequest
0 голосов
/ 20 октября 2010

Я установил AJAX-скрипт, который при нажатии кнопки вызывает документ PHP.

Проблема, с которой я столкнулся, теперь заключается в том, что некоторые переменные файла PHP установлены на константу, и теперь я хочуони должны быть условными к тому, что отправляется при нажатии кнопки.

Я хочу, чтобы был флажок, который при щелчке установит для переменной PHP значение ИСТИНА, а если нет, то будет установлено значениебыть ЛОЖНЫМ.

Я надеюсь, что проблема достаточно ясна.

Теперь я вставлю приведенный ниже код, потому что это может помочь решить проблему.

Извините, мне нужно вставитьэтот «огромный» кусок кода, но я не уверен, что может быть полезным, а что нет.

Вот index.html

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","roulette.php",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Welcome to Trufa&rsquo;s Roulette</h2></div>
<button type="button" onclick="loadXMLDoc()">Spin the Wheel!</button>

</body>
</html>

А вот часть roulette.php

### Comprare pick to result

//The squares

$sqr_00 = -1;
$sqr_0 = 0;
$sqr_1 = 1;


//Placed bets, if true he placed bet

$bet_straight_placed = array(
 $sqr_00 => false, 
 $sqr_0 => true,
 $sqr_1 => true
);

Что мне нужно, как я уже говорил ранее, это заменить FALSE в $sqr_00 => false на переменную, которая имеет значение true, когда флажок установлен!

Я надеюсь, что вопросдостаточно ясно, чтобы быть понятым, но ПОЖАЛУЙСТА попросите каких-либо разъяснений, необходимых!

Заранее спасибо!

Труфа

РЕДАКТИРОВАТЬ:

Обращаясь к ответу @grossvogel Я публикую то, что я понял о его ответе, потому что он не работает.Извините и большое спасибо!

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","roulette.php",true);
xmlhttp.send();
}
var isChecked = document.myform.checkbox.checked ? 1 : 0;
xmlhttp.open("GET","roulette.php?boxchecked=" + isChecked,true);
</script>
</head>
<body>

<div id="myDiv"><h2>Welcome to Trufa&rsquo;s Roulette</h2></div>
<form name="myform">
<input type="checkbox" name="checkbox" value="checkbox" />00<br />
<button type="button" onclick="loadXMLDoc()">Spin the Wheel!</button>
</form>

</body>
</html>

и php

//The squares

$sqr_00 = -1;
$sqr_0 = 0;
$sqr_1 = 1;


//Placed bets, if true he placed bet
$chb_00 = $_GET['boxchecked'];

$bet_straight_placed = array(
    $sqr_00 => (bool) $chb_00,
    $sqr_0 => true,
    $sqr_1 => true
);

//tell the user what number he piecked

echo "You chose this numbers: " . join(", ", array_keys(array_filter($bet_straight_placed))) . '<br />' . '<br />';

Извините, я знаю, что это должно быть совершенно просто, но я не могу разобраться с этим AJAX ""пока.

Спасибо !!!

1 Ответ

1 голос
/ 20 октября 2010

в вашем javascript, вы можете сделать что-то вроде этого

var isChecked = document.myform.checkbox.checked ? 1 : 0;
xmlhttp.open("GET","roulette.php?boxchecked=" + isChecked,true);

Затем в вашем php вы можете прочитать $_GET['boxchecked'], что будет 1, если флажок был установлен, 0, если он не был 't.

РЕДАКТИРОВАТЬ: распространение идеи на более чем одно поле.
Чтобы сделать это, вы бы добавили столько флажков, сколько хотите, скажем, их имена value1, value2, value3, ....Затем вы можете сделать что-то вроде этого:

var value1 = document.myform.value1.checked ? 1 : 0;
var value2 = document.myform.value2.checked ? 1 : 0;
var value3 = document.myform.value3.checked ? 1 : 0;
...

и

xmlhttp.open("GET","roulette.php?value1=" + value1 + "&value2=" + value2 + "&value3=" + value3 ...,true);

В php прочитайте $_GET['value1'], $_GET['value2'], $_GET['value3']...

Как только вы получите понятия, вы можете написатьфункции для уменьшения дублирования, если хотите.

...