【问题标题】:AJAX + PHP self-generated fields producing blank resultsAJAX + PHP 自生成字段产生空白结果
【发布时间】:2013-08-06 10:07:17
【问题描述】:

我回来了,这个可能有点棘手,但我们会发现的! :D

好的,我正在使用 php 自行填充我的 select 字段,因此当新代理加入时我不必不断更新 options。我在页面的这一部分使用 ajax (javascript),除了公司 select 字段外,我对此没有任何问题。

Live site

我的所有select 字段都可以正常工作,但“公司”字段仅在名称中似乎带有“&”的公司上不会显示任何内容。 (两家公司名称中仍然使用“&”)

停业公司名单:
-国歌
-鲍嘉
-伯纳姆
-教会保险
-福塞特
-JRM
-肯尼斯·B·布朗
-牛顿
-Sam F.
-雪莉尔
-华莱士和特纳

PHP Company select 代码:(company 字段中的 if/else 语句最好是 if ($row['Company'] !== NULL) { echo '<option value="'.$row['Company'].'">'.$row['Company'].'</option>'; },但由于某种原因,它会在 option 下拉列表中的空白处回显。)

<label for="company">Company</label><br />
<select id="company" name="users" onChange="showUser(this.value)">
       <?php include 'login.php';

        $result = mysqli_query($con, "SELECT DISTINCT Company FROM `roster` ORDER BY Company ASC;");
                    echo '<option value="">' . 'Select a Company' .'</option>';
                    while ($row = mysqli_fetch_array($result)) {
                        if ($row['Company'] == NULL) {

                        }
                        else {
                            echo '<option value="'.$row['Company'].'">'.$row['Company'].'</option>';
                        }
                    }
        ?>
</select>

其他select 字段的PHP:

<label for="last">Last Name</label><br />
                <select id="last" name="Last_Name" onChange="showUser(this.value)">
                    <?php include 'login.php';

                    $result = mysqli_query($con, "SELECT DISTINCT Last_Name FROM `roster` ORDER BY Last_Name ASC;");
                    echo '<option value="">' . 'Select an Agent' .'</option>';
                    while ($row = mysqli_fetch_array($result)) {
                        echo '<option value="'.$row['Last_Name'].'">'.$row['Last_Name'].'</option>';
                    }
                    ?>
</select>

关于这个有什么想法吗?如果您需要查看在结果中回显的 process.php 页面,请询问!感谢任何提供帮助的人。

通过 php 填充 HTML 时的外观:

<select id="company" name="users" onchange="showUser(this.value)">
     <option value="">Select a Company</option><option value="A.R.T. Group">A.R.T. Group</option><option value="ALPHA Benefits">ALPHA Benefits</option>                    
</select>

我只包含了一些,因为其中 80 多行是一大行 html。

【问题讨论】:

  • 你能把正在生成的html代码贴在这里吗?
  • 当然!请给我一秒钟。

标签: php ajax mysqli


【解决方案1】:

您需要urlencode 正在通过ajax 传递的参数。 & 号告诉 PHP $_GET['q'] 已完成,新的 $_GET 变量正在启动。

注意与符号的%26 返回所需的结果。

http://healthbenefitsohio.com/process.php?q=Anthem%20Blue%20Cross%20%26%20Blue%20Shield

您的公司选项应如下所示:

echo '<option value="'.urlencode($row['Company']).'">'.$row['Company'].'</option>';

为了更好的衡量,我也会对显示进行编码

echo '<option value="'.urlencode($row['Company']).'">'.htmlspecialchars($row['Company'],ENT_QUOTES).'</option>';

【讨论】:

  • 我会在几分钟内试一试,我希望它能奏效!这是我第一次尝试 php 的一次学习经历。
  • 嗯,这很有趣:process.php?q=Anthem%20Blue%20Cross%20%26%20Blue%20Shield,当我在 Google Chrome 中使用控制台时,它显示了这些结果,但它包括“&“ 象征。如果它像这样显示,我可以清楚地看到哪里出了问题。
  • Google chrome 显示了与号。这就是我识别错误的方式。
  • 我非常感谢您的帮助,您的回答确实解决了我的问题。是否有更好的控制台可以使用,这样我就不会再次遇到这个问题,或者我应该熟悉浏览器如何呈现文本?我写了很多html,但我的印象是&=“&”。
  • 阅读 urlencoding(stackoverflow.com/questions/4667942/why-should-i-use-urlencode) 和 html encoding(stackoverflow.com/questions/4882307/…) -- 对于开发和调试,我使用 firebug 和 chrome
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多