使用MySQL、PHP、AJAX将值发布到数据库,而不使用jQuery
Post values to database using MySQL, PHP, AJAX without using jQuery
这是生成产品显示的页面:
<?php
$q = intval($_GET['q']);
$databaseConnect = $_SERVER['DOCUMENT_ROOT'] . "/637415/globalScripts/sql_connect.php";
include($databaseConnect);
mysqli_select_db($con,"up637415_cms");
$sql="SELECT * FROM products WHERE prod_id = '".$q."'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
echo
'<div class="prodWrapper">'
. '<h2>' . '<span id="currentProdId">' . $row['prod_id'] . '</span>' . ' ' . $row['prod_title'] . '</h2>' . '<form><input type="text" placeholder="Enter New Title" id="newProdTitle"/><input type="button" value="Commit" onclick="productTitleUpdate()"/></form> '
. '<div class="prodimg">' .
'<img src="/637415/cms/images/products/' . $row['prod_img'] . '"' . ' ' . 'alt="'
. $row['prod_title'] . ' ' . 'image' . '">'
. '<form class="clearit"><input type="file" value="Select Image" /><input type="submit" value="Upload & change image" /></form> '
. '</div>'
. '<h3>' . 'Product Description:' . '</h3>' .$row['prod_description'] .
'<form class="clearit"><textarea class="clearit" rows="4" cols="50" placeholder="Update product description"></textarea><input type="submit" value="Commit" /></form> '
. '<p>' . 'Quantity Available:' . $row['prod_quantity'] . '</p>' . '<form><input type="text" placeholder="Enter Quantity" /><input type="submit" value="Commit" /></form> ' .
'</div>'
;
}
mysqli_close($con);
?>
以下是Javascript文件,我正试图使用它将span id="currentProdId"answers"newProdTitle"的输入id中的值发布到MySQL数据库中
function productTitleUpdate()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("newProdTitle").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","/637415/admin/scripts/updateProductTitle.php",true);
xmlhttp.send(newProdTitle=document.getElementById("newProdTitle").value);
xmlhttp.send(newProdTitle=document.getElementById("currentProdId").value);
}
以下是ajax使用的PHP文件:
<?php
$databaseConnect = $_SERVER['DOCUMENT_ROOT'] . "/637415/globalScripts/sql_connect.php";
include($databaseConnect);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysqli_select_db($con,"up637415_cms");
$sql="UPDATE products
SET prod_title='(newProdTitle from javascript file) WHERE prod_id=(currentProdId from javascript file)";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo '1 record added' . ' ' . '<a href="/637415/admin/index.php">Go back to admin</a>';
mysql_close($con)
?>
我不知道如何从javascript文件中获取值:
SET prod_title='(javascript文件中的newProdTitle)WHERE prod_id=(javascript文件的currentProdId)";
然后替换存储在数据库中的值。它还应该在不刷新页面的情况下刷新到新值。我一直在网上浏览如何做到这一点,但感觉有点失落。
任何帮助都将不胜感激。谢谢
好的,所以你在AJAX请求中使用POST
方法,所以要将JavaScript值传递给PHP,然后传递给MySQL,你需要将变量值发送到你的PHP脚本,看起来你正在这样做。
通常,你必须序列化你试图发送的数据,比如:
var data = 'newProdTitle='+newProdTitle+'¤tProdId='+currentProdId;
因此,当它通过网络发送时,最终看起来是这样的:
newProdTitle=blahbalh¤tProdId=8392
您必须通过XmlHttpRequest将数据发送到PHP。这里有一个关于如何做到这一点的例子
最后,在PHP中,您只需将收到的值引用为$_POST['newProdTitle']
和$_POST['currentProdId']
xmlhttp.send(newProdTitle=document.getElementById("newProdTitle").value);
xmlhttp.send(newProdTitle=document.getElementById("currentProdId").value);
到这个
var params = "newProdTitle=" + document.getElementById("newProdTitle").value +"¤tProdId=" + document.getElementById("currentProdId").value;
xmlhttp.send(params);
现在从phpscript 中获取值
您可以直接调用POST,因为您正在使用POST
示例
$newProdTitle = $_POST['newProdTitle'];
$currentProdId= $_POST['currentProdId'];
相关文章:
- 如何通过php页面将数据库值检索到jquery自动完成框中
- Jquery(多读/少读)在从数据库加载整个数据后不起作用
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 将动态feild数据存储到jquery-mobile和php-mysql中的数据库中
- 使用jQuery/Ajax从数据库中检索记录
- 如何使用JQuery将值数组插入到数据库中
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 使用 jQuery UI 折叠面板显示 couchDB 数据库搜索结果时出现问题
- 尝试使用 ASP-classic 和 jQuery 根据数据库的结果自动选择下拉选项
- 使用javascript、jquery和PHP自动完成从数据库中提取城市的输入
- 如何在使用jquery向数据库发送数据时取消激活的按钮
- 需要帮助-用数据库中的数据替换DIV内容而不刷新(使用-jquery、hmlhttp、CI)
- 使用jquery ajax更新数据库;不起作用
- 每个数据库行的jQuery对话框
- jQuery在没有数据库的情况下从php-json自动完成
- 从数据库检索值时,Jquery mobile复选框未选中
- 使用jquery在googlemapapi中放置多个标记,coords将来自数据库
- 使用jquery验证插件检查数据库中是否存在电子邮件
- 如何使用javascript从数据库中获取值,我使用的是jquery自动完成,我只想从数据库中搜索值
- 切换结果来自数据库jQuery