【问题标题】:object Object & undefined GET variablesobject 对象和未定义的 GET 变量
【发布时间】:2013-09-19 09:50:48
【问题描述】:

这就是我想要得到的response14.php?questionID=1&question=yes&approved=1

这是我目前得到的response14.php?questionID=[object%20Object]&question=undefined&approved=1

这是js文件:

$(document).ready(function(){
    $(".save_btn").on('click', function() {
         var check = $("input[name=no]").is(":checked")?2:1;
         var questionID = $("textarea[id=questionID]").val();
         var question = $("textarea[value=question]").val();
        location = "response14.php?questionID=" +questionID + "&question=" +question + "&approved=" +check;

这是表格:

echo "<script src='viewsonly.js' type='text/javascript'> </script><br><center>";    
    include("db_conn.php");

$qry_strings4 = "SELECT * FROM `Y new questions`";
$preps4 = $pdo_conn->prepare($qry_strings4);
            $preps4->execute();
           // $row = $preps4->fetch(PDO::FETCH_ASSOC);
        //echo "$count";
            echo "<table style='border:0px; background-color:lightgrey; width:75%'><thead style='border:0px;'><tr style='border:0px solid white; background-color:#153E7E; text-align:left; color:white; padding: 5; margin: 5;'><th style='border:1px white; padding: 5; margin: 5;'>Question</th><th style='border:1px white; padding: 5; margin: 5;'>Response</th></tr></thead><tbody>";
            while ($row = $preps4->fetch(PDO::FETCH_ASSOC)) {
                echo "<tr style='border:1px white; background-color:lightgrey; color:black; padding: 5; margin: 5;'><td style='border:1px white; vertical-align:top; padding: 5; margin: 5;'>{$row['starName']}</td>
                      <td style='border:1px white; padding: 5; margin: 5;'><div id='wrap'>
<textarea cols='85' rows='2' id='{$row['questionID']}' class='response textbox'>{$row['question']}</textarea>
YES: <input type='checkbox' name='yes[]' value='yes'>
NO: <input type='checkbox' name='no[]' value='no'>";
            }
            echo "</tbody></table>";
            echo "<button type='button' class='save_btn'>Save All</button><br>";

渲染的html:

 <td style='border:1px white; padding: 5; margin: 5;'><div id='wrap'>
<textarea cols='85' rows='2' id='3792' class='response textbox'>Hello C!!

Where can I send you fan mail? :)
I want your autograph and I'm from the Philippines :)

God bless Cooper!</textarea>
    YES: <input type='checkbox' name='yes' value='yes'> &nbsp;&nbsp;&nbsp;
    NO: <input type='checkbox' name='no' value='no'>    </div></td></tr><tr style='border:1px white; background-color:lightgrey; color:black; padding: 5; margin: 5;'><td style='border:1px white; vertical-align:top; padding: 5; margin: 5;'>Gavin Casalegno</td>
                      <td style='border:1px white; padding: 5; margin: 5;'><div id='wrap'>
<textarea cols='85' rows='2' id='3793' class='response textbox'>What is your religion?
Do you believe in God?
How much you measure height?</textarea>
    YES: <input type='checkbox' name='yes' value='yes'> &nbsp;&nbsp;&nbsp;
    NO: <input type='checkbox' name='no' value='no'>    </div></td></tr></tbody></table><button type='button' class='save_btn' style='align:right'>Save All</button><br>

关于如何解决这个问题的任何想法???

我刚刚按要求添加了渲染的 html

【问题讨论】:

  • $("textarea[value=question]") 似乎很奇怪。 php代码看起来也与问题无关。
  • 我试图为其他人编辑 var 检查一个,而 php 代码显示了 textarea 和 checkbox
  • 我认为 PHP 是相关的,但只是因为它显示了表单是如何创建的。不过,HTML 会更有用。不过与问题相关:"textarea[id=questionID]" 我不相信你有 textareaid=questionID,而是我相信它是基于数字的。
  • 在上面添加了渲染的html

标签: javascript php checkbox pdo get


【解决方案1】:

假设您有一个 ID 为 questionID 的唯一元素,在此分配中,您应该在属性周围添加引号:

var questionID = $("textarea[id='questionID']").val();

你也可以简单地写

var questionID = $("#questionID").val();

在这里,您通过 value 属性定位文本区域,

var question = $("textarea[value=question]").val();

但 textareas 不提供 value 属性(有关详细信息,请参阅 MDN


最后,如果你想执行POST 请求,你需要使用ajax。 (由于您使用的是 jQuery,请参阅$.post 方法的文档)

【讨论】:

  • 现在它显示 questionID=undefined&amp;question=undefined 并且是的 questionID 是唯一的
  • var questionID = $("#questionID").val();不会显示文本区域中的值吗?
  • 你确定页面中真的有这些元素吗?你能看看你的浏览器接收到的源代码吗?
  • var questionID = $("textarea[id='questionID']").val();var questionID = $("#questionID").val(); 仍然显示未定义。查看上面渲染的 html 以查看源代码
  • console.log($("#questionID")) 的控制台输出什么?
【解决方案2】:

要使用 post 方法,你可以这样做:

首先用带有action="response14.php" 的表单元素包裹您的表格, 然后使用提交按钮提交您的表单并根据需要进行验证。

或者

您可以使用ajax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多