[英]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);
?>
這是我要用來使用PHP將跨度id =“ currentProdId”和輸入id“ newProdTitle”的值發布到MySQL數據庫的Javascript文件:
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'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.