переключатель в php - PullRequest
       2

переключатель в php

0 голосов
/ 13 июня 2010
... Да нет: "/>

В любом случае, у меня также есть этот javascript, который передает информацию о выходе в insertSC.php:

function DoSCInsert(){
    $("#SCres").html("to sek..");
    var nocache = '0';
    var data = { fID : $("#fID").val(), SCvote : $("#SCvoteY").val(), SCvote : $("#SCvoteN").val(), comment: $("#comment").val(), nocache: nocache };
    $.get('insertSC.php', data, onSCInsertComplete);
}
function onSCInsertComplete(data,textstatus){
    $("#SCres").html(data);
}

и в моем insertSC.php у меня есть это:

<?php
echo $_GET['comment']." - ".$_GET['SCvoteY'];
?>

Теперь я получаю комментарий, но не SCvoteY .... это просто тест, который я сделал, что я действительно делал, это то, что вы голосуете за Y или N, а затем он вставляется в столбец голосования Y или N (что вы выбрали ) теперь я не могу понять, как это сделать / что-то пошло не так, и теперь я не могу даже выбрать SCvoteY, я просто получаю неопределенный индекс

Что мне нужно, так это то, что я просто хочу упомянуть, когда вы выбираете Y или N, оно должно выводить то, что вы выбираете. Если вы не выбрали ни одного (пустой isset?), Тогда false .. еще эхо Y или N (что вы выбрали)

Ответы [ 3 ]

0 голосов
/ 13 июня 2010

Насколько я могу сказать, вы дважды передаете SCvote в insertSC.php, но не SCvoteY.Это просто опечатка.Поскольку вы используете его дважды, SCvoteN будет всегда перезаписывать его значение, и вы пытаетесь повторить SCvoteY, которого у вас нет.

0 голосов
/ 13 июня 2010

Используйте JQuery .serialize() вместо того, чтобы анализировать результат самостоятельно.

Редактировать Вам нужно сделать три вещи:

  1. (необязательно) Удалите id атрибутов ваших радиокнопок - они не нужны
  2. Изменить DoSCInsert() функцию для использования .serialize()
  3. Измените ваш PHP-код, чтобы найти правильное имя параметра.

Ниже приведен фрагмент кода:

HTML

<form action="javascript:DoSCInsert()" method="post">
<textarea onfocus="this.cleared=true;javascript:clearContents(this);" rows="5" cols="40" id="comment" name="comment">...</textarea>
Yes: <input type="radio" value="Y" name="vote"/>  No: <input type="radio" value="N" name="vote">
<input type="hidden" name="fID" id="fID" value="<? echo $_GET["id"]; ?>" />
<input onsubmit="if (!this.comment.cleared) clearContent(this.comment); return true;" type="submit" name="Submit" value="Stem!"/> 
</form>

JS

function DoSCInsert(){
    var data = $('form').serialize();
    $.get('insertSC.php', data, onSCInsertComplete);
}

PHP

echo $_GET['comment']." - ".$_GET['vote'];

Наконец, вам не нужен закрывающий тег для ввода, наберите radio; поэтому я также достал два </input> с.

0 голосов
/ 13 июня 2010

Это потому, что имя вашей радио кнопки «SCvote», а не «SCvoteY» ... Вам нужно получить значение «SCvote», которое будет либо «N», если они выбрали «нет», «Y», если онивыбрал да, или "", если они никогда не выбирали один. Редактировать: Я не совсем уверен, как работает jQuery GET, но я уверен, что вы всегда получите значение no, поскольку вы определяете их обоих в данных, а непроверка того, какой из них выбран, и определение только этого.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...