0

<a>这是在 php 中使用标签制作的主题选择器。一旦用户单击触发器,该函数将值从原始<a>标签传递到另一个<input>标签以用于显示目的。然后当用户提交表单时,调用 ajaxForm 来处理其余的。

js.文件:

function selectopic(topic_selector_name){        
 $('#topicidselected').val($(topic_selector_name).val());
 // alert ($('#topicidselected').val());
 $('#topicidselected').text($(topic_selector_name).val());
 $('#topicselected').text($(topic_selector_name).text());
}

$('.topicselect').click(function(){
selectopic($(this));
}); 

$('#newentryform').ajaxForm({
    target:  '#para1', 
    resetForm: true,     
    });     

问题是,我们假设有$_POST={"entry":"blahblahblah","topicid":"122","date":"12\/06\/12","privacy":"onlyme"}

但相反,它给了我Notice: Undefined index: topicid in D:\wamp\www\projectdiary\diary\php\_newentry.php on line 2

{"entry":"blahblahblah","topicid":null,"belongdate":"12\/06\/12","privacy":"onlyme"}

php.file:

$arr = array( 'entry' => $_POST['entry'], 'topicid' => $_POST['topicid'], 'date' => $_POST['date'], 'privacy' => $_POST['privacy']);
  echo "We have saved your entry, this is how it looks like: <br />";
      echo json_encode( $arr );

你可以在js.file中看到我使用alert检查传入后的值。它是一个正确的数字“122”。

我是菜鸟,我需要你的帮助。谢谢。

4

3 回答 3

1

检查是否定义了索引,如果没有放 NULL

$_POST['entry'] = isset($_POST['entry']) ? $_POST['entry'] : NULL;
$_POST['topicid'] = isset($_POST['topicid']) ? $_POST['topicid'] : NULL;
$_POST['privacy'] = isset($_POST['privacy']) ? $_POST['privacy'] : NULL;
$_POST['date'] = isset($_POST['date']) ? $_POST['date'] : NULL;

$arr = array( 'entry' => $_POST['entry'], 'topicid' => $_POST['topicid'], 'date' => $_POST['date'], 'privacy' => $_POST['privacy']);
  echo "We have saved your entry, this is how it looks like: <br />";
      echo json_encode( $arr );

或禁用通知

error_reporting(E_ALL ^ E_NOTICE);

$arr = array( 'entry' => $_POST['entry'], 'topicid' => $_POST['topicid'], 'date' => $_POST['date'], 'privacy' => $_POST['privacy']);
  echo "We have saved your entry, this is how it looks like: <br />";
      echo json_encode( $arr );
于 2012-06-12T12:25:07.493 回答
1

为什么要分配值topicselected并设置text属性(不正确使用,请参阅文档)?您正在单击a标签并获取val()它们?请参阅那里的文档:http: //api.jquery.com/val/ - 也无效。也许我误解了你?

我认为你比你必须更加努力,这可以在一行中完成:

jQuery('.topicselect').click(function(){$('#topicidselected').val(this.rel);}); 

jsFiddle:http: //jsfiddle.net/KNERB/

于 2012-06-12T12:29:41.057 回答
1

alert建议您已成功填充#topicidselected了一个值,所以我的猜测是问题出在表单上。查看:

  1. input您在 ( ) 上设置值的标签#topicidselected实际上是正在提交的表单的一部分 - 换句话说,它嵌套<form>在您的其他表单元素所在的标签内。

  2. 具有input以下name属性topicid<input name="topicid" id="topicidselected" value="" />

于 2012-06-12T12:33:59.227 回答