首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ajax中发送"&“作为请求参数

如何在ajax中发送"&“作为请求参数
EN

Stack Overflow用户
提问于 2010-11-04 22:31:04
回答 2查看 751关注 0票数 1

我使用jquery代码将表单数据传递给php,然后php代码将数据保存到mysql数据库。如果标题是"how to save & to mysql database using php",那么标题将作为"how to save"存储在数据库中。我该如何解决这个问题呢?

以下是我的JS代码

代码语言:javascript
复制
    var dataString = 'title='+ title + '&url=' + url + '&description=' + description + '&published=' + published+ '&catid=' + catid;

  //alert (dataString);return false;

  $.ajax({
    type: "POST",
    url: "process.php",
    data: dataString,
    success: function() {
      $(".button").hide();
      $('#messages').html("<div id='message'></div>");
      $('#message').html("<h2>weblink Form Submitted!</h2>")
      .hide()
      .fadeIn(1500, function() {
        $('#message');
      });
    }
  });

和php代码

代码语言:javascript
复制
    <?php
$con = mysql_connect("localhost","db","pass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("dalanrep_dalanreportcom", $con);

    $title        = mb_convert_encoding(trim($_POST['title']),'HTML-ENTITIES', 'UTF-8');
    $url          = mb_convert_encoding(trim($_POST['url']),'HTML-ENTITIES', 'UTF-8');
    $description  = mb_convert_encoding(trim($_POST['description']),'HTML-ENTITIES', 'UTF-8');
    $published    = mb_convert_encoding(trim($_POST['published']),'HTML-ENTITIES', 'UTF-8');
    $catid        = mb_convert_encoding(trim($_POST['catid']),'HTML-ENTITIES', 'UTF-8');

    $title =mysql_escape_string($title );
    $url = mysql_escape_string($url );
    $description = mysql_escape_string($description );
$sql="INSERT INTO table (title, url, description,catid)
VALUES ('$title','$url','$description','$catid')";



if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-04 22:37:32

&是URL中的一个特殊字符。它是多个参数的分隔符。您需要通过encodeURIComponent()自己对参数值进行URL编码

代码语言:javascript
复制
var dataString = 'title' + encodeURIComponent(title) + '&url=' + encodeURIComponent(url) ... ;

或者将参数作为JS对象{}提供,以便jQuery自己处理它。

代码语言:javascript
复制
var data = {
    "title": title, 
    "url": url,
    ...
};
票数 7
EN

Stack Overflow用户

发布于 2010-11-04 22:44:46

如果是数据而不是段分隔符,则需要对与号进行编码。

代码语言:javascript
复制
<?php
$var = "some title with an & in it";

$title = htmlentities($var);

...
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4097669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档