2

我已经搜索,我已经编辑,重新编辑,我已经被 JSLint 屈尊并重新测试过。我已经达到了我所知道的实际极限,而且我没有使用 Firebug 或其他工具来更具体地隔离问题的经验。将一个小男孩指向正确的方向。

这是我认为有问题的代码:

echo '<script type="text/javascript">' . "\n";
echo '$(document).ready(function() {' . "\n";   
echo '$("#' . $row['firstname'] . $row['lastname'] . '").click(function() {' . "\n";
echo '  $.post("http://example.com/publish.php", { fname: "' . $row['firstname'] . '", lname: "' . $row['lastname'] . '", input: "' . $published['input'] . '", table: "' . $q . '" });' . "\n";
echo 'e.preventDefault();' . "\n";
echo 'return false;' . "\n";
echo '     });' . "\n";
echo '});' . "\n";
echo '</script>';

这是一个更大的 while 循环的一部分,该循环从 mysql 数据库中获取数据,详细说明作为外展计划的一部分被分配了 html 模板的个人。除其他外,循环让用户知道内容是否已发布到网络上,或者它是否只是作为查询的一部分准备就绪;0 表示未发布,1 表示已发布。上面的脚本预计会告诉 publish.php 执行 UPDATE 查询并将 0 更改为 1,反之亦然。看起来很简单,如果我手动查询脚本,我的内容就会发布——我会得到预期的结果。

现在在浏览器端,我使用 PHP 在表格中输出数据库信息。在最后一列中,有一个按钮可以发布或取消发布。

echo "<td><button id='" . $row['firstname'] . $row['lastname'] . "' class='btn btn-small " . $published['UI'] . "'>" . $published['do'] . "</button></td>";

上面的代码似乎工作正常;它只是根据他们的名字和姓氏的合并生成一个唯一的#id,回显要附加到按钮的适当类(红色表示取消发布,绿色表示发布)并提醒用户他们将采取的行动,如果他们选择按下按钮。

现在,它应该与以下内容结合在一起。这是我认为可能是有问题的代码的输出(我发布的第一个片段)。对我来说,它看起来很甜蜜,但谁知道呢。毕竟我是业余爱好者。

$(document).ready(function() {
$("#FirstnameLastname").click(function() {
  $.post("http://example.com/publish.php", { fname: "Firstname", lname: "Lastname", input: "1", table: "Tablename" });
e.preventDefault();
return false;
     });
});

如果我写:

$.post("http://example.com/publish.php", { fname: "Firstname", lname: "Lastname", input: "1", table: "Tablename" });

直接进入控制台,我将 Tablename 中用户 Firstname Lastname 的发布状态从 0 更改为 1。如果我单击该按钮,我将在地址栏中得到一个无意义的字符串:

http://example.com/outreach.php?names=Tablename&names=None

这到底是怎么回事?

在此先感谢您阅读本文。期待解决这个问题!哈哈。

补充笔记:

PHP 5.3.x
Jquery is called in the head.
All table names contain a number of dashes - could this be causing the string to turn into rubbish? e.g outreach.php?names=Ta-bl-ena-me&names=None

下面是 outreach.php 如何请求表名列表。在更改时,这将作为 Ajax 发送到 getnames.php,然后以前面提到的表格的形式将 html/js 发送回 outreach.php(没问题)。这就是为什么我现在想我可能需要回到绘图板...

<?php   while($showtablerow = mysql_fetch_array($showtablequery_result))    {   echo "<option>" . $showtablerow[0]."<br />" . "</option>";  } ?>
4

1 回答 1

0

好的,到目前为止,我刚刚清理了您的代码以提高可读性。我认为发布参数时出了点问题。他们最终也出现在网址中吗?

<script type="text/javascript">
    $(document).ready(function() {
        $("#<?php echo $r['firstname'] . $r['lastname']; ?>").click(function(e) {
        $.post("http://thinknextmedia.com/publish.php", 
            { fname: "<?php echo $r['firstname']; ?>", 
              lname: "<?php echo $r['lastname']; ?>", 
              input: "<?php echo $published['input'] ?>", 
              table: "<?php echo $q ?>" });
        return false;
        });
    });
</script>
于 2012-11-19T03:16:38.793 回答