0

我是 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 脚本仅在选项 == 0 和选项 == 1时工作(当我单击带有选项 == 0的警报按钮时,它会警报 0,并单击带有选项 == 1的警报按钮,它会警报 1)。但是如果选择 == 2,它根本不起作用,它会警告未定义。I want when choice == 3 and user choose the radio button, it will do like below:

- 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

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

预先感谢

4

2 回答 2

2

你有逻辑

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

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

但如果选择为 2,则方式不同。

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

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

像 jsfiddle.net 这样的网站中的一个活生生的例子可以帮助我们更轻松地进行修补。

于 2013-11-01T02:50:12.973 回答
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>";
于 2013-11-01T04:09:19.337 回答