Php ajax成功,但未发送post数据

Php ajax成功,但未发送post数据,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,嗨,我有一个简单的代码: var datastring="123"; $.ajax({ url: 'actualizarimagen.php', type: 'post', dataType: 'text', data: datastring, cache: false, success: function(response){ $('.msg1').html(respons

嗨,我有一个简单的代码:

var datastring="123";
$.ajax({ 
        url: 'actualizarimagen.php',
        type: 'post',
        dataType: 'text',
        data: datastring,
        cache: false,
        success: function(response){
            $('.msg1').html(response);

         },
        error: function(response){
            $('.msg1').html(response);
         }

    });
在imagen.php中:

$desc_larga = print('<pre>') & print_R($_POST) & print('</pre>');
$insertSQL = sprintf("INSERT INTO prueba (texto) VALUES ($desc_larga)");
$desc_larga=print(“”)和print_R($_POST)和print(“”);
$insertSQL=sprintf(“插入到prueba(texto)值($desc_larga)”);
我收到成功消息,但在数据库中总是保存1。我试着改变一切,数据类型,成功,错误,完整的函数,但都不起作用。我在寻找,但任何答案都帮不了我

谢谢


编辑:添加响应

要发送数据,需要遵循以下格式。 像

第二种格式(对象名称值数组)类似于
,其中html输入元素具有要发布的名称和值

然后,您可以通过以下方式获得该值:

$_POST['var2']  


您的
datastring
应包含编码为
application/x-www-form-urlencoded

e、 g.:
var datastring=“foo=123”

最好不要将字符串传递给jQuery。将一个对象传递给它,让它为您处理编码

e、 g.:
数据:{“foo”:“123”}

在ajax调用中:

$desc_larga = '<pre>'.$_POST['my_var'].'</pre>';
在php中:

var datastring="myField=123";
if($_POST() && isset($_POST['datastring'])){

/* Connect to DB */
$link = mysql_connect('server', 'user', 'pwd');
if (!$link) {
    // No connection
    print(0);
    exit();
}

$db = mysql_select_db('db', $link);
if (!$db) {
    // DB selection error
    print(0);
    exit();
}

/* Sanitize the value */
$datastring = mysql_real_escape_string($_POST['datastring']);

// I don't understand here what you tried to do with $dec_larga but this is what I thought
$desc_larga = "<pre>".$datastring."</pre>";

/* Insert to DB */
$sql = "INSERT INTO prueba (texto) VALUES ('$desc_larga')";

if(mysql_query($sql,$link)){
    // Everything is Ok at this point
    print(1);
} else {
    // Error happened in your SQL query
    print(0);
}

}
$desc_larga='.$\u POST['my_var'.'”;
var datastring = {"myField" : 123 };
数据 对象、字符串

要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串。它被附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是数组,jQuery将基于传统设置的值(如下所述)使用相同的键序列化多个值

您只需向服务器发送123

应该是这样的

$_POST["myField"]  

使用PHP,您可以阅读它

type: "POST",
试着替换

single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1

您的数据字符串应该如下所示:

$desc_larga = '<pre>'.$_POST['data'].'</pre>';
$query =  '"INSERT INTO prueba (texto) VALUES ('.$desc_larga.')"';
如下文所述:

在imagen.php中:

$desc_larga = print('<pre>') & print_R($_POST) & print('</pre>');
$insertSQL = sprintf("INSERT INTO prueba (texto) VALUES ($desc_larga)");
$desc_larga='.$\u POST['data'.'”;
var datastring = {"myField" : 123 };
$query='“插入prueba(texto)值('.$desc_larga')”;
轻松实现这一点的示例可以是:

JS:

在您的应用程序中,

if($\u POST()&&isset($\u POST['datastring'])){
/*连接到数据库*/
$link=mysql_connect('server','user','pwd');
如果(!$link){
//没有联系
打印(0);
退出();
}
$db=mysql\u select\u db('db',$link);
如果(!$db){
//数据库选择错误
打印(0);
退出();
}
/*清理该值*/
$datastring=mysql\u real\u escape\u string($\u POST['datastring']);
//我不明白你想用dec_larga美元做什么,但我就是这么想的
$desc_larga=“”.$datastring。“”;
/*插入到数据库*/
$sql=“插入prueba(texto)值(“$desc_larga”)”;
if(mysql_查询($sql,$link)){
//现在一切都好
印刷品(1);
}否则{
//SQL查询中发生错误
打印(0);
}
}

datastring
只是一个值,不应该是键/值对吗?如果没有键,
$\u POST
如何包含该值?或者,如果只提供一个键,它将包含什么值?另外,
print_R()?用php还是js?thanksA包含JavaScript对象文字的字符串不是合适的格式。@Quentin告诉我们它就是这种格式
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1
var datastring = "123";
$.ajax({ 
   url: 'actualizarimagen.php',
   type: 'post',
   dataType: 'text',
   data: {data : datastring},
   cache: false
}).always(function(response) {
   $('.msg1').html(response);
});
$desc_larga = '<pre>'.$_POST['data'].'</pre>';
$query =  '"INSERT INTO prueba (texto) VALUES ('.$desc_larga.')"';
var datastring="123";

$.post('actualizarimagen.php', { datastring:datastring }, function(data){
     if(data != 0){
        $('.msg1').html('correcto');
     } else {
        $('.msg1').html('error');
     } 
});
if($_POST() && isset($_POST['datastring'])){

/* Connect to DB */
$link = mysql_connect('server', 'user', 'pwd');
if (!$link) {
    // No connection
    print(0);
    exit();
}

$db = mysql_select_db('db', $link);
if (!$db) {
    // DB selection error
    print(0);
    exit();
}

/* Sanitize the value */
$datastring = mysql_real_escape_string($_POST['datastring']);

// I don't understand here what you tried to do with $dec_larga but this is what I thought
$desc_larga = "<pre>".$datastring."</pre>";

/* Insert to DB */
$sql = "INSERT INTO prueba (texto) VALUES ('$desc_larga')";

if(mysql_query($sql,$link)){
    // Everything is Ok at this point
    print(1);
} else {
    // Error happened in your SQL query
    print(0);
}

}