簡體   English   中英

使用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);
?> 

這是我要用來使用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+'&currentProdId='+currentProdId;

因此,當它通過網絡發送時,最終看起來像這樣:

newProdTitle=blahbalh&currentProdId=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 +"&currentProdId=" + document.getElementById("currentProdId").value;
xmlhttp.send(params);

現在從您的phpscript中獲取價值

您可以直接致電POST,因為您正在使用POST

$newProdTitle = $_POST['newProdTitle'];
$currentProdId= $_POST['currentProdId'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM