从对话框中通过 Ajax 发送 php 生成的表单数据
Sending php generated form data via Ajax from Dialog box
大家好,有什么帮助吗?我有一个由单击按钮触发的对话框,它调用我的 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"> </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> </td>
</tr>
</table></form>
<div id="thanks">
</div>
';
我目前正在使用的 JQuery 试图让它调用我的 php 来处理正在发送的表单。
var $j = jQuery.noConflict();
(function($j){
$j(document).ready(function() {
$j("#cContactSbmt").click(function(e){//'click',
e.preventDefault();
alert('cContactSbmt clicked...');
$j.ajax ({
type:"POST",
url:"inc/runUtilities.php",
data: $j(this).serialize(),
success: function(msg){
$j("#thanks").html(msg)
$j(this).modal('hide');
},
error: function(){
alert("failure");
}
});
});
});
})($j);
出于某种原因,它无法正常工作,控制台中也没有显示任何内容。
再次:我有一个对话框,该对话框通过 Ajax 填充,其中生成的 php 需要提交给另一个 php 脚本来处理它并回复对话框。
有什么建议吗?
你的 php 没有输出 ("echoing") 任何东西。你需要 echo
任何你想 return 到你的 ajax-call。
更新: 加上调试尝试在每个 success
回调中记录 returned 数据,例如:
success: function(data) {
console.log(data);
}
您可能需要在 php 代码段的末尾添加回显..
echo $show;
此回显 html 将在成功回调函数的 ajax 函数中可用...作为变量 "data"
success: function(data) {
$k('#DlgTxt').html(data).fadeIn('slow');
}
您可能还需要在点击功能中使用 jQuery.on() 来提交表单..
$j("body").on("click", "#cContactSbmt", function(){
});
希望这对您有所帮助....
大家好,我做了以下更改:
在表格上;
<button id="cContactSbmt" onClick="doContactsCreate(\'#cContact\')" type="button" class="form-submit" name="cContactSbmt" value="cContactSbmt">Create contact</button>
我添加了带有回调函数 doContactsCreate(\'#cContact\') 的 onclick 方法,该函数具有传递给它的表单 ID。
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");
}
});
}
我刚刚将 JQuery 代码包含在此函数定义中并将其放在
之外
(function($k){
$k(document).ready(function() {
//rest of JQuery code
})($k);
不知道为什么,但我认为这是主要问题
大家好,有什么帮助吗?我有一个由单击按钮触发的对话框,它调用我的 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"> </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> </td>
</tr>
</table></form>
<div id="thanks">
</div>
';
我目前正在使用的 JQuery 试图让它调用我的 php 来处理正在发送的表单。
var $j = jQuery.noConflict();
(function($j){
$j(document).ready(function() {
$j("#cContactSbmt").click(function(e){//'click',
e.preventDefault();
alert('cContactSbmt clicked...');
$j.ajax ({
type:"POST",
url:"inc/runUtilities.php",
data: $j(this).serialize(),
success: function(msg){
$j("#thanks").html(msg)
$j(this).modal('hide');
},
error: function(){
alert("failure");
}
});
});
});
})($j);
出于某种原因,它无法正常工作,控制台中也没有显示任何内容。 再次:我有一个对话框,该对话框通过 Ajax 填充,其中生成的 php 需要提交给另一个 php 脚本来处理它并回复对话框。 有什么建议吗?
你的 php 没有输出 ("echoing") 任何东西。你需要 echo
任何你想 return 到你的 ajax-call。
更新: 加上调试尝试在每个 success
回调中记录 returned 数据,例如:
success: function(data) {
console.log(data);
}
您可能需要在 php 代码段的末尾添加回显..
echo $show;
此回显 html 将在成功回调函数的 ajax 函数中可用...作为变量 "data"
success: function(data) {
$k('#DlgTxt').html(data).fadeIn('slow');
}
您可能还需要在点击功能中使用 jQuery.on() 来提交表单..
$j("body").on("click", "#cContactSbmt", function(){
});
希望这对您有所帮助....
大家好,我做了以下更改: 在表格上;
<button id="cContactSbmt" onClick="doContactsCreate(\'#cContact\')" type="button" class="form-submit" name="cContactSbmt" value="cContactSbmt">Create contact</button>
我添加了带有回调函数 doContactsCreate(\'#cContact\') 的 onclick 方法,该函数具有传递给它的表单 ID。
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");
}
});
}
我刚刚将 JQuery 代码包含在此函数定义中并将其放在
之外(function($k){
$k(document).ready(function() {
//rest of JQuery code
})($k);
不知道为什么,但我认为这是主要问题