0

我在 php 中有一个由 javascript 打开的弹出表单。我希望在单击提交时将其发送到我的数据库。php 表单在没有 javascript 的情况下可以正常工作,但是在添加时它不起作用。你知道如何解决这个问题吗?

 </style>
 <script type='text/javascript'>
 $(document).ready(function() {
  $('#box_form').dialog({
    autoOpen: false,
    height: 375,
    width: 350,
    modal: true,
    buttons: [
        {
        text: "Cancel",
        click: function() {
            $(this).dialog("close");
        }},
    {
        text: "Submit",
        click: function() {
            $('#former').submit();
        }}
    ]
});
$('#clicky').button().click(function(e){
    $('#box_form').dialog('open');
});
  });
    </script>
    </head>
   <body>
   <form id="former" method="post" action="film_post.php" name="former">
  <div id="box_form">
   <select id="option" name="option">
                    <option value="film">film</option>
                    <option value="livre">livre</option>
                    <option value="musique">musique</option>            
            </select></p>
    <p>
    <select id="star" name="star">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option> 

            </select></p>
    <label for="nom">nom</label> :  <input type="text" name="nom" id="nom" /><br />

 </div>
 </form>
 <input type="button" id="clicky" value="Show Form">

而film_post.php 文件是:

  try
  {
$bdd = new PDO('mysql:host=localhost;dbname=website', 'root', 'root');
   }
  catch(Exception $e)
 {
    die('Erreur : '.$e->getMessage());
   }

    $option = $_POST['option'];
      $star = $_POST['star'];

    if ($option == film AND $star = 1) {
   $req = $bdd->prepare('INSERT INTO film (film, star) VALUES(?,?)');
     $req->execute(array($_POST['nom'],$_POST['star'] )); }

     elseif ($option == film AND $star = 2) {
    $req = $bdd->prepare('INSERT INTO film (film, star) VALUES(?,?)');
    $req->execute(array($_POST['nom'],$_POST['star'] )); }

     elseif ($option == film AND $star = 3) {
   req = $bdd->prepare('INSERT INTO film (film, star) VALUES(?,?)');
   $req->execute(array($_POST['nom'],$_POST['star'] )); }
4

1 回答 1

0

显然我还不能发布图片,所以这里有一个链接,指向我在下面的答案中谈到的那个。http://i.stack.imgur.com/xgExo.png

我执行了您的代码,获取了必要的脚本 src 标签,我假设您在实际代码中拥有这些标签,并发现了与您相同的问题。在查看了 firebug 控制台后,就像 jchapa 建议的那样,我发现了您在上图中可以看到的内容。

您正在使用的 jquery ui 以这样一种方式重写您的 from ,它不仅给它提供了那些气泡图形,而且还过早地终止了您的表单标记,正如我在 "" 文本下划线的地方所见。

你如何解决这个问题,我不知道,但这就是你的问题所在。您可能会考虑在线查找如何在此 jquery ui 中设置表单,或者您可能只是从对话框中构建自己的表单。不过,不可否认,图形不会那么圆滑。

于 2012-12-13T01:15:17.550 回答