Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从Javascript获取值_Javascript_Php_Html - Fatal编程技术网

在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。