2010-06-12 57 views
0
... 是:否: “/>

无论如何,所以我有这个JavaScript也是tranfers输出信息到insertSC.php:单选按钮到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我只是得到undefined索引

我需要帮助的是我刚才提到的,我想当你选择Y或N时它应该输出你选择的内容。如果你没有选择任何(空isset?),然后false ..否则回声Y或N(你选择)

回答

0

这是因为你的单选按钮的名称是“SCvote”,而不是“SCvoteY”...你需要以获得“SCvote”的值,如果他们选择了“否”,那么它将是“N”,如果他们选择了是“Y”,或者如果他们从未选择过,则为“”。 编辑:我不确定jQuery GET究竟是如何工作的,但我敢肯定,你总是会得到没有价值,因为你在数据中定义它们而不是检查哪一个是选择和定义只有那一个。

单选按钮的工作原理: 每个人都应该有相同的名字,在这种情况下,“投票”,这使得它只有一个组中的按钮可以选择。提交该数据时,值是为提交时选择的值定义的值,如果未选择任何值,则为空。通过ID获取值将始终返回定义的值,您需要检查它是否被检查。根据该按钮是否为当前选中的值,选中的值将为true或false。

+0

如何检查呢?我的意思是从我的代码,而不是$ _GET [“SCVoteY”];我应该如何回应“投票”的名字? – Karem 2010-06-13 18:50:51

0

据我可以告诉你将SCvote两次传入insertSC.php,但不是SCvoteY。这只是一个错字。由于您使用了两次,SCvoteN将总是覆盖了它的值,并尝试回显您没有的SCvoteY。

0

使用JQuery的.serialize()而不是自己分析输出。

编辑 你需要做三件事情:

  1. (可选)删除id ATTRIB您的单选按钮 - 他们不需要
  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']; 

最后,您不需要结束标记输入,类型无线电;所以我也拿出了两个</input> s。

+0

你可以给我例如,我不明白从jQuery数据库这么多 – Karem 2010-06-13 18:51:43