【问题标题】:Undefined value is storing in database未定义的值存储在数据库中
【发布时间】:2017-02-07 19:22:05
【问题描述】:

我通过此代码在表格中存储了一个空白行

<table id="jobSkills" ">
    <tbody>
        <tr><td  class="col-xs-4"> Skill </td>
    </tbody>
</table>
<p><span>addSkills">+ Add Skills</span><p>

jQuery Add+++ 更多脚本:

var skillcount=0;
$(".addSkills").click(function(){
    $('#jobSkills tr:last').after('<tr><td><input name="skill['+skillcount+'][title]" type="text" "></td></tr>');
    skillcount++;
});

存储在数据库中的控制器代码:

foreach($_POST["skill"] as $k=>$key)
{
    $conn->query("INSERT INTO r_job_skill (id_job,title) values ('".$jobId."','".$key["title"]."')");
}

【问题讨论】:

  • 那么问题是什么?
  • @Epodax 如果您看到图像最后一个值存储为空,则不应出现。
  • 然后将其写入您的问题中,标题并不意味着您的整个问题文本。
  • A GUESS:用户点击Add Skill,您的 js 添加了一个新的空白行。用户不必费心在新行中输入任何内容。所以在插入空白行之前必须在PHP脚本中寻找这种情况
  • 另一种猜测:您为用户输入技能提供了一个空白行,您不会在传递给 PHP 脚本的数据中查找该空白行

标签: php jquery mysql append undefined


【解决方案1】:

按照下面的方式更改您的脚本代码

var skillcount=0;
$(".addSkills").click(function(){
    $('#jobSkills tr:last').after('<tr><td><input name="skill[]" type="text" "></td></tr>');
    skillcount++;
});

还可以按照下面的方式更改您的 php 代码

foreach($_POST["skill"] as $value)
{
$conn->query("INSERT INTO r_job_skill (id_job,title) values ('".$jobId."','".$value."')");
}

【讨论】:

    【解决方案2】:

    可能有两种情况。

    要么你得到空值给你的 php 文件。 当 PHP 文件中的所有值都可用时执行插入操作

    if($_POST["skill"] !='')
    {
     // insert Query goes Here
    }
    

    或者你向 PHP File 发送一个 Extra 值,没有其他值 检查您的 HTML 代码,您可能有一个带有参数的额外名称,这会将值带到您的 PHP 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多