任何人都可以帮助我如何使用JavaScript获取价值?

时间:2013-11-01 02:39:00

标签: javascript php jquery

我是javascript的新手,为什么我不知道如何使用javascript获取价值。

这是我的PHP脚本

while($row = mysql_fetch_array($sql)){
echo "<div class='loop'>";
    if($row['choice'] == 0){
        echo "<p>First Choice</p>";
        echo "<input type='hidden' id='hidden' value='0' />";
    }
    elseif($row['choice'] == 1){
        echo "<p>Second Choice</p>";
        echo "<input type='hidden' id='hidden' value='1' />";
    }
    else{
        echo "<p><input type='radio' name='content_type' value='1' />This is A</p>
              <p><input type='radio' name='content_type' value='2' />This is B</p>
              <p><input type='radio' name='content_type' value='3' />This is C</p>";

        //content_a
        echo "<div id='content_a'>";
            echo "<p>First Choice</p>";
            echo "<input type='hidden' id='hidden' value='0' />";
        echo "</div>";

        //content_b
        echo "<div id='content_b'>";
            echo "<p>Second Choice</p>";
            echo "<input type='hidden' id='hidden' value='1' />";
        echo "</div>";

        //content_c
        echo "<div id='content_c'>";
            echo "<p>Third Choice</p>";
            echo "<input type='hidden' id='hidden' value='2' />";
        echo "</div>";
    }
    echo "<a style='text-decoration: none; color: #000000;' class='alert'
          href='#' onclick='return false;'>Alert</a>";
echo "</div>";
}

的Javascript

//when click on alert button
$(".alert").bind('click', function(){
    var type = $(this).parents('.loop').find("#hidden").val();
    alert(type);
});

//when radio button change
$('input[name=content_type]').bind('change', function(){
    var n = $(this).val();
    switch(n)
        {
          case '1':
              $(this).parents('.loop').find('#content_a').show(1000);
              $(this).parents('.loop').find('#content_b').hide(1000);
              $(this).parents('.loop').find('#content_c').hide(1000);
              break;
          case '2':
              $(this).parents('.loop').find('#content_b').show(1000);
              $(this).parents('.loop').find('#content_a').hide(1000);
              $(this).parents('.loop').find('#content_c').hide(1000);
              break;
          case '3':
              $(this).parents('.loop').find('#content_c').show(1000);
              $(this).parents('.loop').find('#content_a').hide(1000);
              $(this).parents('.loop').find('#content_b').hide(1000);
              break;
        }
});

上面的javascript脚本只有在 choice == 0和choice == 1 时(当我点击警告按钮 choice == 0时) ,它会提示0,然后点击提示按钮 choice == 1 ,它会提示1)。但是如果 choice == 2 ,它根本不起作用,它会提示未定义。我希望当 选择== 3 并且用户选择单选按钮时,它将如下所示:

- if user choose **This is A** and click Alert button, it will alert 0
- if user choose **This is B** and click Alert button, it will alert 1
- if user choose **This is C** and click Alert button, it will alert 2

你能帮我解决这个问题吗?

提前感谢

2 个答案:

答案 0 :(得分:2)

你有

的逻辑
if($row['choice'] == 0){

elseif($row['choice'] == 1){

但如果选择为2,则不会以相同的方式。

你还有三个id ='hidden'的输入。以下行是否有可能找到错误的隐藏元素?

var type = $(this).parents('.loop').find("#hidden").val();

像jsfiddle.net这样的网站中的实例会帮助我们更轻松地修补。

答案 1 :(得分:0)

您在以下代码中获得相同的ID。 id需要给出唯一的名称。

echo "<div id='content_a'>";
            echo "<p>First Choice</p>";
            echo "<input type='hidden' id='hidden' value='0' />";
        echo "</div>";

        //content_b
        echo "<div id='content_b'>";
            echo "<p>Second Choice</p>";
            echo "<input type='hidden' id='hidden' value='1' />";
        echo "</div>";

        //content_c
        echo "<div id='content_c'>";
            echo "<p>Third Choice</p>";
            echo "<input type='hidden' id='hidden' value='2' />";
        echo "</div>";