Ajax Call with Post in PHP
Ajax Call with Post in PHP
<!doctype html>
<html>
<head>
<title>jQuery Tagit Demo Page (HTML)</title>
<script src="demo/js/jquery.1.7.2.min.js"></script>
<script src="demo/js/jquery-ui.1.8.20.min.js"></script>
<script src="js/tagit.js"></script>
<link rel="stylesheet" type="text/css" href="css/tagit-stylish-yellow.css">
<script>
$(document).ready(function () {
var list = new Array();
var availableTags = [];
$('#demo2').tagit({tagSource:availableTags});
$('#demo2GetTags').click(function () {
showTags($('#demo2').tagit('tags'))
});
/*
$('li[data-value]').each(function(){
alert($(this).data("value"));
});*/
$('#demo2').click(function(){
$.ajax({
url: "demo3.php",
type: "POST",
data: { items:list.join("::") },
success: alert("OK")
});
});
function showTags(tags) {
console.log(tags);
var string = "";
for (var i in tags){
string += tags[i].value+" ";
}
var list = string.split(" ");
//The last element of the array contains " "
list.pop();
}
});
</script>
</head>
<body>
<div id="wrap">
<?php
$lis = $_POST['items'];
$liarray = explode("::", $lis);
print_r($liarray);
?>
<div class="box">
<div class="note">
You can manually specify tags in your markup by adding <em>list items</em> to the unordered list!
</div>
<ul id="demo2" data-name="demo2">
<li data-value="here">here</li>
<li data-value="are">are</li>
<li data-value="some...">some</li>
<!-- notice that this tag is setting a different value :) -->
<li data-value="initial">initial</li>
<li data-value="tags">tags</li>
</ul>
<div class="buttons">
<button id="demo2GetTags" value="Get Tags">Get Tags</button>
<button id="demo2ResetTags" value="Reset Tags">Reset Tags</button>
<button id="view-tags">View Tags on the console </button>
</div>
</div>
</div>
<script>
</script>
</body>
</html>
这段代码只会传输 dostuff 中的项目列表.php但是当我尝试在 PHP 上print_r它时,什么都不会出来。 这是为什么呢?
我正在这条线上做一个 ajax 请求
$('#demo2').click(function(){
$.ajax({
url: "demo3.php",
type: "POST",
data: { items:list.join("::") },
success: alert("OK")
});
});
和 PHP 中的代码
<?php
$lis = $_POST['items'];
$liarray = explode("::", $lis);
print_r($liarray);
?>
鉴于信息有限,这只是黑暗中的一枪,但看起来您期望从服务器发回的数据会发生一些事情......但实际上您什么也没做。 成功后,您会看到一个警报...仅此而已。
尝试将成功条目更改为以下内容:
success: function(data) {
$("#wrap").html(data);
}
这将用POST
请求中的数据填充div。 它显示为"无"的原因......,您没有使用print_r
实际回显任何内容所需的数据加载当前正在执行的页面。
编辑:如何将值插入数据库;
现在的数据库交互是使用自定义包装器或php Data Object
(也称为 PDO(完成的,而不是已弃用的 mysql_*
函数。
首先,准备数据库对象,类似于在上述已弃用的函数中完成连接的方式:
$dbh = new PDO("mysql:host=hostname;dbname=database", $username, $password);
然后,您可以开始交互,准备查询语句。
$stmt = $dbh->prepare("UPDATE table_name SET column1 = :column1 WHERE id = :id");
在所述语句中绑定参数..
$stmt->bindParam(':column1', $column1);
$stmt->bindParam(':id', $id);
$id = $_POST['id'];
最后执行查询:
try {
$stmt->execute();
}
catch (Exception $e) {
echo $e;
}
PDO自动转义前面语句中绑定的任何字符串,使其免受SQL注入攻击,并加快了多次执行的过程。 举个例子:
foreach ($_POST as $id) {
$stmt->execute();
}
由于id参数已经绑定到$id
,你所要做的就是更改$id
并执行查询。
你期望print_r
的PHP结果在哪里"出来"?
尝试将 AJAX 调用更改为 this(只有 success
的值不同(:
$.ajax({
url: "demo3.php",
type: "POST",
data: { items:list.join("::") },
success: function(data, textStatus, jqXHR){
alert(data);
}
});
这样,PHP模板的输出,如果您以老式的方式(即使用表单和整页重新加载(发布到它,您通常会看到它,将显示在警报中。
希望有帮助。
尝试为 jQuery 部分添加 encodeURI,
$.ajax({
url: "demo3.php",
type: "POST",
data: { items: encodeURIComponent (list.join("::")) },
success: function(response) {
console.log(response);
}
});
和 PHP 部分的 urldecode:
$lis = $_POST['items'];
$liarray = explode("::", urldecode($lis));
print_r($liarray);
3 件事:
设置 AJAX 的success
以显示 PHP 脚本中给出的回显/打印
success: function(result)
{
$("#somecontainer").html(result);
}
这样,任何以PHP脚本打印的内容都将被放入,即
<div id="somecontainer">
Result of PHPcode here
</div>
其次,而不是
var string = "";
for (var i in tags)
{
string += tags[i].value+" ";
}
var list = string.split(" ");
//The last element of the array contains " "
list.pop();
使用push()
.这会在数组中下一个未占用的索引处添加值:
var string = "";
for (var i in tags)
{
list.push(tags[i].value);
}
这样你就不必弹出最后一个元素。
第三点:把你的PHP代码放在一个单独的文件中(还有你的JavaScript/jQuery(。喜欢:
/root/index.html
/root/script/dostuff.php
/root/script/myscript.js
然后让您的 AJAX 调用url: "/script/dostuff.php"
- onclick javascript in PHP
- Ajax Call with Post in PHP
- Javascript's .toString(16) in PHP
- Unable to receive something in PHP from XMLHttpRequest's
- Cookie grabber in Php or javascript
- Javascript blues in PHP: getElementById & getElementsByC
- javascript loader in php foreach
- Smoke.js in php
- HTTPPost to JSON in PHP
- Javascript hide in php
- $_GET in PHP and &
- SSL websocket in php / javascript
- Javascriptvariable in PHP
- javascript append in Php echo?
- Twitter "@" and "#" linking in PHP
- JavaScript HTML5 in php
- Search in php cURL with jquery
- JavaScript in PHP
- Window.location - javascript in php
- Implement Web Services in PHP & JavaScript.