在PHP中从Javascript获取值
我在网络编程方面不是很有经验,正在尝试运行一个脚本来更新我的数据库在PHP中从Javascript获取值,javascript,php,html,Javascript,Php,Html,我在网络编程方面不是很有经验,正在尝试运行一个脚本来更新我的数据库 <script> function myFunction() { var texts = document.getElementById("content").textContent; alert(texts) <?php inc
<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>
你的做法是错误的 您应该使用ajax将“文本”值发布到php脚本中 并创建单独的php文件,从中可以从ajax post和update DB中获取数据 javascript:
<script>
function myFunction() {
var texts = document.getElementById("content").textContent;
$.ajax({
type: "POST",
url: "update.php",
data: "texsts=" + texts,
success: success
});
}
</script>
函数myFunction(){
var text=document.getElementById(“内容”).textContent;
$.ajax({
类型:“POST”,
url:“update.php”,
数据:“texsts=”+文本,
成功:成功
});
}
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());
?>
<?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());
?>
您可以使用ajax将您的$text
值发布到其他php页面,并使用$\u post['text']
获取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());
?>
<?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());
?>
如果我是你,我将使用PDO,你所做的mysql\u查询已经过时,如果你使用我的框架,你可以执行以下代码
<?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);
?>
将此代码放在jsonUpdate.php文件中,并将其称为width jQuery
<script>
function myFunction(yourText) {
$.post( 'jsonUpdateEnemies.php', {
'text' : yourText
}, function(data)
{
alert('Data updated');
},'json');
}
</script>
函数myFunction(yourText){
$.post('jsonUpdate.php'{
“文本”:您的文本
},函数(数据)
{
警报(“数据更新”);
}“json”);
}
这比你问的要复杂一点,但我将如何解决你的问题:)PHP在服务器上运行,然后生成输出,然后返回到客户端。您不能让JavaScript函数调用内联PHP,因为PHP在JavaScript交付到客户端之前就已经运行了
相反,您需要做的是让函数向服务器端PHP脚本发出AJAX请求,然后从请求体提取数据,然后将其存储在数据库中
<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>
PHP:“/yourpscript.PHP”
警告一句:这不是更新数据库中数据的安全、生产友好的方法。此代码容易受到SQL注入攻击,这超出了您的问题范围。请查看您是否正在编写将投入生产的代码。制作一个XMLHttPrequest,您在那里使用的那一个不会以这种方式工作。甚至在调用函数之前,PHP脚本就已经运行了。您可以尝试使用jquery ajax将文本值提交到PHP文件。您可能希望使用ajax方法执行类似操作。看看他们有一个ajax方法,可以让你做到这一点。php在服务器上运行,javascript在客户端运行。您不能像以前那样将这两种语言结合起来,您需要Ajax。