$_POST 值未在 $.ajax post 上设置
$_POST value not getting set on $.ajax post
我是 PHP 和 javascript 的新手,我 运行 遇到了一个问题,我需要编辑已读取的 xml 文档中的值in. 我有一个 HTML Select 是由 PHP 代码动态创建的。
function outputTableRow() {
echo "<tr>";
echo "<td>";
echo "<select onchange=\"ValueChange(this);\">";
echo "<option value=\"not value\" selected >No selection</option>";
echo "<option value=\"A\" >A</option>";
echo "<option value=\"B\" >B</option>";
echo "<option value=\"C\" >C</option>";
echo "<option value=\"D\" >D</option>";
echo "</select>";
echo "</td>";
echo "</tr>";
}
select 的 onchange 事件然后调用一个 javascript 函数,该函数(据我所知)对同一 [=29] 的 _POST 执行 ajax 请求=] 文件.
function ValueChange(obj)
{
var value = obj.value;
$.ajax({
type: "POST",
url: "functions.php",
data: "callFunction=UpdateValue"
});
}
从那里我尝试检查 _POST 中 ajax 请求设置的值以调用适当的函数。
if(isset($_POST['callFunction'])){
if($_POST['callFunction'] == 'UpdateValue'){
UpdateValue();
}
}
最后,在我试图到达的函数中,我试图在到达该代码时写一个控制台日志,但它永远不会到达那里。事实上,_POST 始终为空。
function UpdateValue()
{
echo '<script>console.log("VALUE CHANGE")</script>';
}
非常感谢任何帮助。
Ajax 调用中的 URL 可能是错误的,它必须包含服务器 o 类似的东西,您可以尝试使用 ´URL: "http://localhost/functions.php"´
首先,heredoc 是您应该如何输出 HTML:
的块
<?php
function outputTableRow() {
echo <<< HTML
<tr>
<td>
<select onchange="ValueChange(this);">
<option value="not value" selected >No selection</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
</td>
</tr>
HTML;
}
然后您需要将 success callback 添加到 Ajax 函数:
function ValueChange(obj)
{
var value = obj.value;
$.ajax({
type: "POST",
url: "functions.php",
data: "callFunction=UpdateValue",
success: function(data) {$(body).append(data);}
});
}
实际上,您还应该使用 jQuery 来绑定事件,而不是同时使用 onchange
属性。假设你给了 select id="changer"
它看起来像这样:
$("select#changer").on("change", function() {ValueChange(this);});
我是 PHP 和 javascript 的新手,我 运行 遇到了一个问题,我需要编辑已读取的 xml 文档中的值in. 我有一个 HTML Select 是由 PHP 代码动态创建的。
function outputTableRow() {
echo "<tr>";
echo "<td>";
echo "<select onchange=\"ValueChange(this);\">";
echo "<option value=\"not value\" selected >No selection</option>";
echo "<option value=\"A\" >A</option>";
echo "<option value=\"B\" >B</option>";
echo "<option value=\"C\" >C</option>";
echo "<option value=\"D\" >D</option>";
echo "</select>";
echo "</td>";
echo "</tr>";
}
select 的 onchange 事件然后调用一个 javascript 函数,该函数(据我所知)对同一 [=29] 的 _POST 执行 ajax 请求=] 文件.
function ValueChange(obj)
{
var value = obj.value;
$.ajax({
type: "POST",
url: "functions.php",
data: "callFunction=UpdateValue"
});
}
从那里我尝试检查 _POST 中 ajax 请求设置的值以调用适当的函数。
if(isset($_POST['callFunction'])){
if($_POST['callFunction'] == 'UpdateValue'){
UpdateValue();
}
}
最后,在我试图到达的函数中,我试图在到达该代码时写一个控制台日志,但它永远不会到达那里。事实上,_POST 始终为空。
function UpdateValue()
{
echo '<script>console.log("VALUE CHANGE")</script>';
}
非常感谢任何帮助。
Ajax 调用中的 URL 可能是错误的,它必须包含服务器 o 类似的东西,您可以尝试使用 ´URL: "http://localhost/functions.php"´
首先,heredoc 是您应该如何输出 HTML:
的块<?php
function outputTableRow() {
echo <<< HTML
<tr>
<td>
<select onchange="ValueChange(this);">
<option value="not value" selected >No selection</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
</td>
</tr>
HTML;
}
然后您需要将 success callback 添加到 Ajax 函数:
function ValueChange(obj)
{
var value = obj.value;
$.ajax({
type: "POST",
url: "functions.php",
data: "callFunction=UpdateValue",
success: function(data) {$(body).append(data);}
});
}
实际上,您还应该使用 jQuery 来绑定事件,而不是同时使用 onchange
属性。假设你给了 select id="changer"
它看起来像这样:
$("select#changer").on("change", function() {ValueChange(this);});