Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对话框通过Ajax发送php生成的表单数据_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 从对话框通过Ajax发送php生成的表单数据

Javascript 从对话框通过Ajax发送php生成的表单数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,嗨,伙计们,有什么帮助吗?我有一个由按钮点击触发的对话框,它调用我的php脚本生成一个需要填写和提交的表单。我想通过Ajax进行发送和确认。我已经重新编码和研究了几天,但StackExchange或其他网站上的任何东西都帮不了我。 代码如下: 对话框代码段 $k('#CreateTable').click(function(e){ e.preventDefault(); var Call = $k('#CreateTable').attr('value')

嗨,伙计们,有什么帮助吗?我有一个由按钮点击触发的对话框,它调用我的php脚本生成一个需要填写和提交的表单。我想通过Ajax进行发送和确认。我已经重新编码和研究了几天,但StackExchange或其他网站上的任何东西都帮不了我。 代码如下:

对话框代码段

$k('#CreateTable').click(function(e){
          e.preventDefault();
         var Call =  $k('#CreateTable').attr('value');//.attr('id');

         var util = $k(this).attr('id');//.attr('id');

         $k('#dialog').dialog({
             autoOpen: false,
            title: 'Running Utility for: '+Call,
            modal: true,
            width: 450,
            close: function(event, ui) {
             $k("#dialog").dialog('destroy');//event.target
            }//END CLOSE

        }).dialog('open');
        var utility = { 'utility' : util };
        $k.ajax({
                  type: "post",
                  url: "inc/runUtilities.php",
                  dataType: "html",
                  data: utility,
                  success: function(data) {
                        $k('#DlgTxt').html(data).fadeIn('slow');
                  }
        });
            //return false;
        });//END DIALOG
PHP代码段

$show .=  "<form id='cContact' name='cContact' method='post'>";
    // action='".$_SERVER['REQUEST_URI']."'
    $show .= '<table align="center" width="425" border="0">
       ';

        $query = "SHOW COLUMNS FROM `".$_SESSION['WorkTable']."`"; 
        if($output = mysqli_query($this->MySQLCxn->MySQLCxn, $query))
        {
            $columns = array();
            while($row = mysqli_fetch_assoc($output))
            {
                if($row['Field'] == 'id') {}
                else
               $show .= '
                <tr>
                  <td width="175"><div align="right">'.@$row['Field'].':</div></td>
                  <td width="155">
                    <input type="text" name="'.@$row['Field'].'" placeholder="'.@$row['Field'].'" />
                  </td>
                  <td width="115">&nbsp;</td>
                </tr>
                ';
            }
        }


    $show .= '
        <tr>
          <td>Submit </td><td>

          <button type="button" id="cContactSbmt" onclick="doSubmitForm(this); return false;" name="cContactSbmt" value="cContactSbmt">Create contact</button>


          <!-- <input type="submit" class="button" value="Save" name="submit"> -->
          </td> <td>&nbsp;</td>
        </tr>
      </table></form>
      <div id="thanks">

      </div>
       ';
})(j美元)

由于某些原因,它无法工作,控制台中也没有显示任何内容。 同样:我有一个对话框,它通过Ajax填充了一个php生成,需要提交到另一个php脚本来处理它并回复对话框。
有什么建议吗?

您的php没有输出(“回音”)任何内容。您需要
echo
返回到ajax调用的任何内容

更新:对于调试,请尝试在每次
成功
回调中记录返回的数据,例如:

success: function(data) {
    console.log(data);
}

您可能需要在php代码段的末尾添加回显

echo $show;
这个回音html将在成功回调函数中的ajax函数中可用。。。作为变量“数据”

此外,您可能需要在单击函数中使用jQuery.on()。以提交表单


希望这能有所帮助……

大家好,我通过以下更改实现了它: 在形式上

<button id="cContactSbmt" onClick="doContactsCreate(\'#cContact\')" type="button" class="form-submit"  name="cContactSbmt" value="cContactSbmt">Create contact</button>
我刚刚将JQuery代码包含在此函数定义中,并将其放在

(function($k){
 $k(document).ready(function() {
//rest of JQuery code
})($k);

不知道为什么,但我认为这是主要的问题

我敢打赌,他会把$show还给某个地方……而且你的“回答”更像是一个评论。@TopQuestions也许-但我已经看到很多ajax新手犯下了这个错误。@northkilidonan不是故意粗鲁的抱歉,再读一遍听起来很粗鲁:/@TopQuestions好吧,如果这是他问题的解决方案,那就是答案。如果不是,它仍然是。lol.@GeraldoIsaaks然后请提供您的完整代码,并尝试调试您的ajax回调,正如我在回答中提到的。伙计们,我花了大约2天的时间来编写这段代码,请仔细看看-我使用JQuery才一年左右,所以我可能错过了一些。至于php代码-回显-该代码是一个类的片段,它做了很多事情,所以我省略了其他代码。。。
$j("body").on("click", "#cContactSbmt", function(){

});
<button id="cContactSbmt" onClick="doContactsCreate(\'#cContact\')" type="button" class="form-submit"  name="cContactSbmt" value="cContactSbmt">Create contact</button>
function doContactsCreate(obj)
{
     alert(obj+': cContactSbmt clicked...');
    /* */
    var frmData = $k(obj).serialize();
         $k.ajax ({
          type:"POST",
          url:"inc/runUtilities.php",
          data: frmData,
          success: function(data){
          $k("#thanks").html(data);
          console.log(data);
            $k(obj).modal('hide');
          },
          error: function(){
            alert("failure");
          }
        });

}   
(function($k){
 $k(document).ready(function() {
//rest of JQuery code
})($k);