[英]Passing a AJAX Variable to PHP
您好想知道如何将AJAX变量发送到php时,我以为自己拥有了它,但显然没有。 在我的控制台中,出现错误“ Uncaught TypeError:非法调用第6行”
我在警报后立即认为我的代码有问题吗? (注意,由于某些原因joomla不喜欢$在脚本中使用$,因此它用$ j代替了“ jquery”)更新,请注意
单击并获取rowID的脚本
<script language="javascript" type="text/javascript">
jQuery(document).ready(function()
{
jQuery("tr.getRow").click(function()
{
rowID = jQuery(this).find("td.idCell");
alert(jQuery(rowID).text());
//Send the row ID to ajaxupdate.php
jQuery.post("ajaxupdate.php", { submit: "update", ID_ID: rowID})
.done( function(data) {
var results = jQuery.parseJSON(data);
console.log( results );
})
.fail( function() {
console.log("AJAX POST failed.");
});
});
});
</script>
加载第一个表(即被单击的那个表)
<table border="",th,td, width="500", align="center">
<tr>
<th>TP ID</th> <th>Permit Deny</th> <th>Level</th> <th>Session</th> <th>Information Specialist</th>
</tr>
<?php foreach ($results as $row): ?>
<tr class="getRow">
<td class="idCell"><?php echo $row->TP_ID ?></td>
<td><?php echo $row->Permit_or_Deny ?></td>
<td><?php echo $row->Level ?></td>
<td><?php echo $row->Session ?></td>
<td><?php echo $row->Information_specialist ?></td>
</tr>
<?php endforeach ?>
<br>
</table>
第二张表,我试图加载的那个
<?php
// In ajaxupdate.php file
if( (isset($_POST['ID_ID'])) || (isset($_POST['submit']))) //im Sure this part is wrong
{
$ID_ID =($_POST['ID_ID']); // pass JS var as a PHP var
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('CV_ID', 'Classifier', 'Value', 'TP_ID')))
->from($db->quoteName('sessionta'))
->where($db->quoteName('TP_ID') . ' LIKE '. $db->quote('".$ID_ID."'));
$db->setQuery($query);
$results = $db->loadObjectList();
}
?>
3425742,
我重写了您的脚本,并使用此JSfiddle对其进行了测试。 试试看。
我发现您正在使用Joomla。 作为新手进入Joomla令人生畏。 在ajaxupdate.php中,脚本期望看到$ _POST ['submit']变量。 删除该要求或像我在下面那样添加它。 在ajaxupdate.php的底部添加此行,以便jQuery进行测试。
echo $results ? json_encode("succeeded") : json_encode("failed"); die();
这是jQuery ajax代码:
//Send the row ID to ajaxupdate.php
$.post("ajaxupdate.php", { submit: "update", TP_ID: rowID})
.done( function(data) {
var results = $.parseJSON(data);
console.log( results );
})
.fail( function() {
console.log("AJAX POST failed.");
});
将“ ajaxupdate.php”编辑到该文件的正确位置。 如果ajaxupdate.php位于另一个目录中,则必须告诉jQuery在该目录中查找。 例如,如果$ .post在Web服务器的根目录中的index.php中,而ajaxupdate在/ js目录中,则将“ ajaxupdate.php”更改为“ js / ajaxupdate.php”。
您将rowID
作为对象而不是单个文本变量传递。 你需要
$.post("ajaxupdate.php", ({ TP_ID: rowID.attr('id') }), function( data )
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.