我对网络编程不是很有经验,并且我正在尝试运行更新数据库的脚本。
<script>
function myFunction() {
var texts = document.getElementById("content").textContent;
alert(texts)
<?php
include_once 'accounts/config.php';
$text = ...;
$tbl_name='enemies'; // Table name
$query = "UPDATE enemies SET text=('$text') WHERE id=1";
$result = mysql_query($query) or die(mysql_error());
?>
}
</script>
我不知道要放在$ text部分中的内容如$text = ...;
所示,以便从上面获取变量文本。
修改
我已经更新了我的代码,但该函数似乎没有访问PHP文件。我正在使用一个按钮来调用该函数,我也测试了它,所以我知道正在调用该函数。我的文件名为update.php,与此文件位于同一目录中。
<button onclick="myFunction()">Click This</button>
<script>
function myFunction() {
var texts = document.getElementById("content").textContent;
$.ajax({
url: "update.php",
type: "POST",
data: {texts:texts},
success: function(response){
}
});
}
</script>
答案 0 :(得分:1)
你可以使用ajax将你的$texts
值发布到其他php页面,并使用$_POST['texts']
在php页面上获取变量,并在那里放置更新查询并享受....
function myFunction() {
var texts = document.getElementById("content").textContent;
$.ajax({
url: 'update.php',
type: "POST",
data: {texts:texts},
success: function(response)
{
}
});
您的php文件将命名为update.php
<?php
include_once 'accounts/config.php';
$text =$_POST['texts'];
$tbl_name='enemies'; // Table name
$query = "UPDATE `enemies` SET `text`='".$text."' WHERE `id`=1";
$result = mysql_query($query) or die(mysql_error());
?>
答案 1 :(得分:0)
你的做法是错误的
您应该使用ajax发布文本&#39;你的PHP脚本的价值 https://api.jquery.com/jquery.post/并创建单独的php文件,您将从ajax发布数据并更新数据库
的javascript:
<script>
function myFunction() {
var texts = document.getElementById("content").textContent;
$.ajax({
type: "POST",
url: "update.php",
data: "texsts=" + texts,
success: success
});
}
</script>
update.php
<?php
include_once 'accounts/config.php';
$text = $_POST['texts'];
$tbl_name='enemies'; // Table name
$query = "UPDATE enemies SET text=('$text') WHERE id=1";
$result = mysql_query($query) or die(mysql_error());
?>
答案 2 :(得分:0)
PHP在服务器上运行,然后生成输出,然后返回到客户端。你不能让JavaScript函数调用内联PHP,因为PHP在JavaScript传递到客户端之前运行。
相反,您需要做的是让您的函数向服务器端PHP脚本发出AJAX请求,然后从请求正文中提取数据,然后将其存储在数据库中。
PHP:“/ yourPhpScript.php”
<?php
include_once 'accounts/config.php';
$text = $_POST['data'];
$tbl_name='enemies'; // Table name
$query = "UPDATE enemies SET text='".$text.'" WHERE id=1";
$result = mysql_query($query) or die(mysql_error());
?>
<强> JavaScript的:强>
function myFunction() {
var texts = document.getElementById("content").textContent;
alert(texts);
// append data as a query string
var params = 'data='+texts;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
// when server responds, output any response, if applicable
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
// replace with the filename of your PHP script that will do the update.
var url = '/yourPhpScript.php';
xmlhttp.open("POST", url, true);
xmlhttp.send(params);
}
提醒:这不是一种安全,生产友好的方式来更新数据库中的数据。此代码对SQL注入攻击开放,这超出了您的问题的范围。如果您要编写将投入生产的代码,请参阅Bobby Tables: A guide to preventing SQL injection。
答案 3 :(得分:-2)
如果我是你,我将使用PDO,你做了什么mysql_query已经过时,如果你使用我的框架https://github.com/parisnakitakejser/PinkCowFramework,你可以执行以下代码。
<?php
include('config.php');
$text = $_POST['text'];
$query = PinkCow\Database::prepare("UPDATE enemies SET text = :text WHERE id = 1");
$bindparam = array(
array('text', $text, 'str')
);
PinkCow\Database::exec($query,$bindparam);
$jsonArray = array(
'status' => 200
);
echo json_encode($jsonArray);
?>
将此代码放在jsonUpdateEnemies.php文件中,并将其命名为width jQuery
<script>
function myFunction(yourText) {
$.post( 'jsonUpdateEnemies.php', {
'text' : yourText
}, function(data)
{
alert('Data updated');
},'json');
}
</script>
它比你问的要复杂得多,但是它将如何解决你的问题,:))