【发布时间】:2015-05-01 00:53:54
【问题描述】:
我目前在使用 ajax 或使用 $('#id').load("page.php #id") 加载页面片段时遇到问题。
我想做的是一个图片库。
为了允许用户更新专辑名称,我创建了一个带有调用 ajax 函数的按钮的表单。这个 ajax 函数在 post 中发送数据,例如“$_POST['oldAlbumName'] = 'newAlbumName'”(或多或少)。
不幸的是,什么都没有发生。
我不知道它是来自 ajax 还是来自 span 的重新加载。 这是我的 PHP:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=bd;charset=utf8', 'root', '');
$reponse = $bdd->query('SELECT DISTINCT album AS A from galerie');
while($donnees = $reponse->fetch())
{
echo $donnees['A']."<br/>";
if(isset($_POST[$donnees['A']."_text"]))
{
echo $_POST[$donnees['A']."_text"]."<br/>";
echo $donnees['A']."_text<br/>";
$bdd->query("UPDATE galerie SET album ='".$_POST[$donnees['A']."_text"]."' WHERE album='".$donnees['A']."_text'");
}
}
}
catch(Exception $e)
{
echo "Impossible de se connecter à la BDD<br/>";
}?>
(回显只打印“胭脂”,这是正常的)
这是我的 JS:
function renommageAjax(textID)
{
var splitted = textID.split("_");
var champ = splitted[0];
$.ajax({
type: "POST",
url: "Galerie.php",
data: {
textID: $("#"+textID).val(),
},
dataType: "text",
success: function(data) {
alert(textID);
$('#'+champ+'_name').html($("#"+textID).val());
$('#updateSpan').load("Galerie.php #updateSpan");
}
});
}
(在我的情况下,警报打印“Rouge_text”,这也是正常的)
当然,我的 php 位于页面“Galerie.php”中的两个 ID 为“updateSpan”的跨度之间。
我的错误在哪里?
谢谢!
【问题讨论】:
-
你必须比“什么都没发生”更具体一点。您提供的 ajax 语句发送
textID,而不是oldAlbumName。 -
什么都没有发生,我的意思是我的数据库没有更新。关于“oldAlbumName”,是为了说明我想做什么。我不应该在这里尝试获取 $_POST['textID'] 而不是 $_POST['Rouge_text'] 吗?
-
另外,我们从不进入 if(isset($_POST[$donnees['A']."_text"])) ... 我不明白为什么。
-
如果您以
textID的名义发送值,那么您当然应该在 PHP 中使用它。 -
在javascript函数中,textID是按钮传来的String,textID的值为“Rouge_text”(我测试的情况下)。无论如何,我尝试了 if(isset($_POST['textID'])) 但我仍然没有进入这个条件。
标签: javascript php jquery ajax load